ファイルの排他制御がやりたいのですができません。
というより、UNIX系ではflockやlockfなどを使えばいいのでしょうが。
そもそも、sys/file.hが存在してません。
私のVCの環境自体がおかしいのでしょうか?
それともVC特有の何かあるのでしょうか?
ご教授いただけたら幸いです。
なお、関数であればその時に必要なincludeファイルも一緒に教えて
いただけたら助かります。
> そもそも、sys/file.hが存在してません。
> 私のVCの環境自体がおかしいのでしょうか?
現行 Windows のシステムコールは Win32API であって
UNIX とは別物ですから、言語規定の標準ヘッダなら
ともかく、他 OS 用のシステムヘッダがなかろうと
なんら驚くことはありません。
> それともVC特有の何かあるのでしょうか?
VC 特有ではありませんが、Windows ではこういった
機能を提供しています。ヘッダも MSDN 等で調べられます(↓)。http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_createfile.htm
以下の方法で解決できました。
<stdio.h>
<stdlib.h>
<io.h>
<fcntl.h>
<share.h>
int fd;
FILE *fp;
読込時
fd = _sopen(ファイル名, _O_RDONLY | _O_BINARY, _SH_DENYRW);
if (fd == -1){
エラー処理
}
fp = fdopen(fd, "rb");
処理
fclose(fp);
書込時
fd = _sopen(ファイル名, _O_WRONLY | _O_BINARY, _SH_DENYRW);
if (fd == -1){
エラー処理
}
fp = fdopen(fd, "wb");
処理
fclose(fp);
ツイート | ![]() |