関数dio_fcntl()は、ファイル記述子 fdにおいてcmdで指定 された処理を行います。いくつかのコマンドでは、オプションの引数 argsの指定が必要となります。
cmdがF_SETLKまたはF_SETLLWの場合、 argは連想配列で、以下のキーを有します。
"start" - ロック開始場所からのオフセット
"length" - ロック領域の大きさ。0はファイル終端を意味します。
"wenth" - l_startの相対位置指定: SEEK_SET, SEEK_END, SEEK_CUR のどれかとします。
"type" - ロックの種類: F_RDLCK (読み込みロック), F_WRLCK (書き込みロック), F_UNLCK (ロック解除)のどれかとします。
cmdは以下の処理のどれかとします。
F_SETLK - ロックは設定またはクリアされます。lockが他の誰かに設 定されている場合、dio_fcntl()は-1を返します。
F_SETLKW - F_SETLKと似ていますが、ロックが他の誰かに設定されて いる場合、dio_fcntl()はそのロックが解放され るまで待ちます。
F_GETLK - dio_fcntl()は、他の誰かがロックを 妨げる場合、(上記の)連想配列を返します。妨げるものがない場合、 キー"type"はF_UNLCKに設定されます。
F_DUPFD - arg以上で最小の数値の利用可能 なファイル記述子を探して返します。