日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
FLOCK(2) FreeBSD システムコールマニュアル FLOCK(2) 名称 flock -- オープンされたファイルでアドバイザリ (advisory) ロックを適用また は削除する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <sys/file.h> #define LOCK_SH 0x01 /* 共有ファイルロック */ #define LOCK_EX 0x02 /* 排他的ファイルロック */ #define LOCK_NB 0x04 /* ロックするとき、ブロックしない */ #define LOCK_UN 0x08 /* ファイルをアンロック */ int flock(int fd, int operation); 解説 flock() システムコールは、ファイル記述子 fd に関連するファイルで advisory (アドバイザリ) ロックを適用するか、または削除します。ロックは、LOCK_NB の オプションの追加で LOCK_SH または LOCK_EX の 1 つである operation 引数を 指定することによって適用されます。既存のロックをアンロックするためには、 operation は、LOCK_UN であるべきです。 アドバイザリロックによって、共同しているプロセスは、ファイルで一貫してい る操作を実行することができますが、一貫性を保証しているわけではありません (すなわち、プロセスは、たぶん、矛盾している結果となるアドバイザリロックを 使用せずにまだファイルにアクセスすることができます)。 ロックメカニズムは、次の 2 タイプのロックを許可します: 共有ロックと排他的 ロック。いつでも、複数の共有ロックは、1 つのファイルに適用されますが、決 して、複数の排他的ロック、または共有ロックと排他的ロックの両方は、1 つの ファイルに同時に許可されません。 共有ロックは、単に適切なロックタイプを指定することによって排他的ロックに アップグレードできます、逆もまた同様です。これは、解放されている前のロッ クと適用された新しいロックの結果となります (たぶん、他のプロセスがロック を取得して、解放した後に)。 すでにロックされているオブジェクトでロックを要求することは、ロックが取得 できるまで、通常、呼び出し側は、ブロックされます。LOCK_NB が operation に 含められているなら、これは、起こりません。代わりに、呼び出しは、失敗し、 エラー EWOULDBLOCK は、返されます。 注 ロックは、ファイル記述子ではなく、ファイルで行われます。すなわち、dup(2) または fork(2) を通して複製されたファイル記述子は、ロックの複数のインスタ ンスの結果となりませんが、単一のロックへの複数の参照となります。ファイル のロックを保持しているプロセスがフォーク (fork) し、子プロセスがファイル を明示的にアンロックするなら、親プロセスは、そのロックを失います。 flock(), fcntl(2) と lockf(3) ロックは、互換性があります。異なったロック のインタフェースを使用しているプロセスは、同じファイル上で安全に協同する ことができます。しかしながら、そのようなインタフェースの 1 つだけが、同じ プロセス内で使用されるべきです。ファイルが flock() を通してプロセスによっ てロックされるなら、ファイル内のあらゆるレコードは、fcntl(2) または lockf(3) を使用して別のプロセスの観点からロックされているかのように見られ ます、そして、逆もまた同様です。 ロックを待つことをブロックされるプロセスは、シグナルによって起こされま す。 戻り値 関数 flock() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が返され、グローバル変数 errno にエラーを示す値が設定されます。 エラー flock() システムコールは、次の場合に失敗します: [EWOULDBLOCK] ファイルが、ロックされ、LOCK_NB オプションが指定されま した。 [EBADF] 引数 fd が無効な記述子です。 [EINVAL] 引数 fd がファイル以外のオブジェクトを参照しています。 [EOPNOTSUPP] 引数 fd がファイルのロックをサポートしないオブジェクト を参照しています。 [ENOLCK] ロックが要求されましたが、ロックが、利用可能ではありま せん。 関連項目 close(2), dup(2), execve(2), fcntl(2), fork(2), open(2), flopen(3), lockf(3) 歴史 flock() システムコールは、4.2BSD で登場しました。 FreeBSD 12.1 November 9, 2011 FreeBSD 12.1