LOCKF(3) | Linux Programmer's Manual | LOCKF(3) |
lockf - オープンされたファイルに対する POSIX ロックの適用・テスト・解除を行う
#include <unistd.h>
int lockf(int fd, int cmd, off_t len);
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 では lockf() と fcntl(2) のロックとの関係は規定されていない。 おそらく、移植性が必要なアプリケーションでは、 lockf() と fcntl(2) のロックを混ぜて呼び出すのは避けるべきであろう。
有効なオプションを以下に挙げる。
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。
この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース | 属性 | 値 |
lockf() | Thread safety | MT-Safe |
POSIX.1-2001, POSIX.1-2008, SVr4.
fcntl(2), flock(2)
Linux カーネルソースの Documentation/filesystems ディレクトリにある locks.txt と mandatory-locking.txt (以前のカーネルでは、これらのファイルは Documentation ディレクトリ直下にあり、 mandatory-locking.txt は mandatory.txt という名前であった。)
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。
2019-03-06 | GNU |