テキストファイルを排他モードで開くには?

解決


tama  2003-08-21 10:09:41  No: 51958  IP: [192.*.*.*]

Aプログラムでテキストファイルを排他モードで開き、
Bプログラムがそのテキストファイルを開く時、排他がとけるまで
Bプログラムは待機したいと考えております。

何か良い方法はないのでしょうか?

排他でなくともBプログラムがそのテキストファイルを開く時にエラーが
帰ってくれば良いのですが。。

fopen関数などやってみたのですが、不可能のようでした。

よろしくお願い致します。

編集 削除
tama  2003-08-21 10:28:21  No: 51959  IP: [192.*.*.*]

CreateFileでできました^^
お騒がせしましてすみません。。

編集 削除
tama  2003-08-21 11:06:41  No: 51960  IP: [192.*.*.*]

やっぱりCreateFileでは同じプロセス内でしか排他チェックできませんでした;;
すみません。。
あらためてどなたか知ってる方がいれば教えていただけないでしょうか?

(解決印を付けてしまったので見てもらえないかもしれませんが;;)

スレッドを荒らしてしまって申し訳ありません。。
よろしくお願い致します。

編集 削除
DMA  2003-08-21 12:55:51  No: 51961  IP: [192.*.*.*]

プロセス間でも排他できるはずですが。
できないと判断した理由は?

編集 削除
tama  2003-08-21 13:10:27  No: 51962  IP: [192.*.*.*]

レスありがとうございます!
> できないと判断した理由は?
下記ソースでEXEを2つ作ってみて起動してみました。
引数に誤りがあるのでしょうか。。

if(INVALID_HANDLE_VALUE == (hFile = CreateFile(LogPath, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)))
{
     printf("開けないので排他がかかっています");
}

CloseHandle(hFile);

編集 削除
tama  2003-08-21 13:48:05  No: 51963  IP: [192.*.*.*]

重ね重ねすみません。。やっぱりCreateFileでできました。
DMAさんご迷惑をおかけしました;;
ありがとうございした。

編集 削除