LOCKF(3) | Linux Programmer's Manual | LOCKF(3) |
lockf - オープンされたファイルに対する POSIX ロックの適用・テスト・解除を行う
#include <unistd.h>
int lockf(int fd, int cmd, off_t len);
glibc
向けの機能検査マクロの要件
(feature_test_macros(7) 参照):
lockf():
オープンされたファイルのセクションに対して、 POSIX ロックの適用・テスト・解除をする。 ファイルは fd で指定される。 fd は書き込みのためにオープンしたファイルディスクリプターである。 アクションは cmd で指定される。 pos を現在のファイル位置とすると、 len が正の場合、セクションはバイト位置 pos..pos+len-1 となり、 len が負の場合、セクションはバイト位置 pos-len..pos-1 となる。 len が 0 の場合、セクションは現在のファイル位置から無限大までとなる (つまり現在の、あるいは変更された場合は将来の、ファイル終端位置まで)。 どの場合においても、セクションは以前のファイル終端よりも拡大されうる。
Linux では、 lockf() は単に fcntl(2) のロックへのインターフェースである。 多くの他のシステムで lockf() はこのように実装されているが、 POSIX.1-2001 では lockf() と fcntl(2) のロックとの関係は規定されていない。 おそらく、移植性が必要なアプリケーションでは、 lockf() と fcntl(2) のロックを混ぜて呼び出すのは避けるべきであろう。
有効なオプションを以下に挙げる。
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。
lockf() 関数はスレッドセーフである。
SVr4, POSIX.1-2001.
Linux カーネルソースの Documentation/filesystems ディレクトリにある locks.txt と mandatory-locking.txt (以前のカーネルでは、これらのファイルは Documentation ディレクトリ直下にあり、 mandatory-locking.txt は mandatory.txt という名前であった。)
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
2014-06-13 | GNU |