inotify_init, inotify_init1 - inotify
インスタンスを初期化する
#include <sys/inotify.h>
int inotify_init(void);
int inotify_init1(int flags);
inotify API の概要については
inotify(7) を参照。
inotify_init() は、新規の inotify
インスタンスを初期化し、作成された
inotify イベントキュー
に対応するファイルディスクリプターを返す。
inotify_init1() は、
flags が 0
の場合、
inotify_init()
と同じである。
flags
に以下の値をビット毎の論理和
(OR) で指定することで、
異なる動作をさせることができる。
- IN_NONBLOCK
- Set the O_NONBLOCK file status flag on the open file
description (see open(2)) referred to by the new file descriptor.
Using this flag saves extra calls to fcntl(2) to achieve the same
result.
- IN_CLOEXEC
- 新しいファイルディスクリプターに対して
close-on-exec ( FD_CLOEXEC)
フラグをセットする。
このフラグが役に立つ理由については、
open(2) の O_CLOEXEC
フラグの説明を参照のこと。
成功すると、これらのシステムコールは新しいファイルディスクリプターを返す。
エラーの場合、-1
を返し、
errno
をエラーを示す値に設定する。
- EINVAL
- (inotify_init1())
無効な値が flags
に指定された。
- EMFILE
- inotify
インスタンスの総数がユーザー単位の上限に達していた。
- EMFILE
- The per-process limit on the number of open file
descriptors has been reached.
- ENFILE
- オープンされたファイルの総数がシステム全体の上限に達していた。
- 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
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。