inotify_init, inotify_init1 - inotify
インスタンスを初期化する
#include <sys/inotify.h>
int inotify_init(void);
int inotify_init1(int flags);
inotify_init() は、新規の inotify
インスタンスを初期化し、作成された
inotify イベントキュー
に対応するファイルディスクリプタを返す。
inotify_init1() は、
flags が 0
の場合、
inotify_init()
と同じである。
flags
に以下の値をビット毎の論理和
(OR) で指定することで、
異なる動作をさせることができる。
- IN_NONBLOCK
- 新しく生成されるオープンファイル記述
(open file description) の BR O_NONBLOCK
ファイルステータスフラグをセットする。
このフラグを使うことで、
O_NONBLOCK
をセットするために
fcntl(2)
を追加で呼び出す必要がなくなる。
- IN_CLOEXEC
- 新しいファイル・ディスクリプターに対して
close-on-exec ( FD_CLOEXEC)
フラグをセットする。
このフラグが役に立つ理由については、
open(2) の O_CLOEXEC
フラグの説明を参照のこと。
返り値¶
成功すると、これらのシステムコールは新しいファイルディスクリプタを返す。
エラーの場合、-1
を返し、
errno
をエラーを示す値に設定する。
エラー¶
- EINVAL
- (inotify_init1())
無効な値が flags
に指定された。
- EMFILE
- inotify
インスタンスの総数がユーザ単位の上限に達していた。
- ENFILE
- inotify
インスタンスの総数がシステムの上限に達していた。
- ENOMEM
- カーネルメモリが十分になかった。
バージョン¶
inotify_init() は Linux 2.6.13
で初めて登場し、
ライブラリによるサポートは
glibc バージョン 2.4
で追加された。
inotify_init1() は Linux 2.6.27
で追加され、
ライブラリによるサポートは
glibc バージョン 2.9
で追加された。
これらのシステムコールは
Linux 独自である。
関連項目¶
inotify_add_watch(2),
inotify_rm_watch(2),
inotify(7)
この文書について¶
この man ページは Linux
man-pages
プロジェクトのリリース
3.41 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man-pages/
に書かれている。