lock

提供: RAD Studio
移動先: 案内検索

io.h:インデックス への移動


ヘッダーファイル

io.h

カテゴリ

入出力ルーチン

プロトタイプ

int lock(int handle, long offset, long length);

説明

ファイル共有ロックを設定します。

lock は,オペレーティングシステムのファイル共有メカニズムへのインターフェースを提供します。

任意のファイルのいくつかの重ならない任意の領域に対してロックを設定できます。ロックされた領域に対して書き込みまたは読み取りを行うプログラムは,操作を 3 回再試行します。3 回の再試行がすべて失敗した場合,呼び出しはエラーになって失敗します。

戻り値

成功した場合,lock は 0 を返します。エラーが発生した場合は -1 を返し,グローバル変数に次の値を設定します。

EACCES

ロック違反





 #include <io.h>
 #include <fcntl.h>
 #include <sys\stat.h>
 #include <process.h>
 #include <share.h>
 #include <stdio.h>
 int main(void)
 {
    int handle, status;
    long length;
    handle = _sopen("c:\\autoexec.bat",
       O_RDONLY,SH_DENYNO,S_IREAD);
    if (handle < 0)
    {
       printf("_sopen failed\n");
       exit(1);
    }
    length = filelength(handle);
    status = lock(handle,0L,length/2);
    if (status == 0)
       printf("lock succeeded\n");
    else
       printf("lock failed\n");
    status = unlock(handle,0L,length/2);
    if (status == 0)
       printf("unlock succeeded\n");
    else
       printf("unlock failed\n");
    close(handle);
    return 0;
 }



移植性



POSIX Win32 ANSI C ANSI C++

+