構文
#include <sys/types.h>
#include <fcntl.h>
説明
fcntl() 関数は、開いているファイルを制御します。 <fcntl.h> インクルードファイルには、fcntl() と open() への リクエスト と 引き数 が書かれています。 fcntl(2) および open(2) についての説明を参照してください。
open() によってセットされ、 fcntl() でアクセスされるアクセスモード
ファイル アクセスモードのマスク
open() または、 fcntl() でセットされ、 fcntl() でアクセスされる
ファイルの状態フラグ
| O_NDELAY | | ノンブロッキング I/O |
| O_NONBLOCK | | POSIX 型 ノンブロッキング I/O |
| O_APPEND | | アペンド (ファイルの最後に書き込むことが保証される) |
| O_DSYNC | | データのライトスルー キャッシング |
| O_SYNC | | データおよび属性のライトスルー キャッシング |
| O_RSYNC|O_DSYNC | | データの読み込みおよび書き込み時のライトスルー キャッシング |
| O_RSYNC|O_SYNC | | データおよび属性の読み込みおよび書き込み時のライト
スルーキャッシング |
| O_LARGEFILE | | ラージファイルを使用可能にしてファイルシステムをマウントし、 O_LARGEFILE オプションでファイルをオープンすると、
ファイルを 2 GB を超えて増やすことができます。 |
フラグ O_SYNCIO は、O_SYNC と同じ働きをし、旧バージョンの <fcntl.h> との互換性を保つために設けられました。
open() でのみ扱えるフラグ
| O_CREAT | | ファイルを作成してオープンする (3 番目の open の引き数を用いる)。 |
| O_TRUNC | | 切捨てオープンする。 |
| O_EXCL | | 排他的にオープンする。 |
| O_NOCTTY | | 制御ターミナルを割り当てない。 |
fcntl() への要求
| F_DUPFD | | ファイル記述子を複製する。 |
| F_GETFD | | ファイル記述子のフラグを得る。 |
| F_SETFD | | ファイル記述子の フラグをセットする。 |
| F_GETFL | | ファイルのフラグを得る。 |
| F_SETFL | | ファイルのフラグをセットする。 |
| F_GETLK | | ファイルのブロッキングロックを得る。 |
| F_SETLK | | ファイルのロックをセット、または解除する。ビジーなら失敗する。 |
| F_SETLKW | | ファイルのロックをセット、または解除する。ビジーなら待つ。 |
F_GETFD および F_SETFD のためのファイル記述子のフラグ
次のメンバーを含む ファイルセグメントロック制御構造体 struct
flock
short l_type; /* F_RDLCK, F_WRLCK or F_UNLCK */
short l_whence; /* Flag - see lseek(2) */
off_t l_start; /* Relative offset in bytes */
off_t l_len; /* Size; if 0 then until EOF */
pid_t l_pid; /* By F_GETLK - process holding lock */
ファイルセグメントのロックの型
| F_RDLCK | | 読出しロック |
| F_WRLCK | | 書込みロック |
| F_UNLCK | | 削除ロック |
標準準拠
<fcntl.h>: AES, SVID3, XPG2, XPG3,
XPG4, FIPS 151-2, POSIX.1