テキストファイルの排他制御について


くろ  2012-07-24 18:35:48  No: 73482  IP: 192.*.*.*

サーバにテキストファイルがあり、
他のパソコン(複数台)から、サーバのテキストファイルを書き換えています。

テキストファイルの内容を書き換える際に、
CreateFile を使用し、テキストファイルの排他制御をおこなっているのですが、
サーバのテキストファイルをOpenしているときに、
LANケーブルが抜かれるなどして、CloseHandler が出来なくなってしまうと、
サーバのテキストが排他制御のままになってしまいます。

この場合、排他制御を解除する方法はあるのでしょうか?


VC++ 6.0
MFC

サーバ: Windows XP または Linux

編集 削除
くろ  2012-07-24 18:56:18  No: 73483  IP: 192.*.*.*

追記

サーバが WindowsXPだと
CreateFileを行ったパソコンのLANケーブルを抜き
5分程まってから、サーバのテキストファイルを開くと
排他制御が解除されています。

これは、OSが勝手に解除しているのでしょうか?
また XP 以降だと、解除されるものと思っていいのでしょうか?

編集 削除
くろ  2012-07-24 18:56:19  No: 73484  IP: 192.*.*.*

追記

サーバが WindowsXPだと
CreateFileを行ったパソコンのLANケーブルを抜き
5分程まってから、サーバのテキストファイルを開くと
排他制御が解除されています。

これは、OSが勝手に解除しているのでしょうか?
また XP 以降だと、解除されるものと思っていいのでしょうか?

編集 削除
tetrapod  2012-07-25 19:13:01  No: 73485  IP: 192.*.*.*

Linux server に windows client から接続ということは samba と仮定する。
server 側でファイルロックされたままになってしまうということは、
そのファイルは永遠に使えないということなので samba にも自動 unlock の
機構は備わっている。
samba の場合 keepalive や deadtime で指定することができる。
# URI が長すぎるので直接リンクできそうに無いので
http://wiki.samba.gr.jp/ から J0063 で検索とか。

Windows server 側の資料はほかの人にお任せ。

編集 削除
くろ  2012-07-27 09:14:31  No: 73486  IP: 192.*.*.*

tetrapod さん
ありがとうございます。

そうです、samba です
やはり、解除する機構があったんですね。

Windows に関しての資料を探してみたんですが、
全然見つからないですね。。。


なかなかググる単語がむつかしいです。
Windows 共有 解除 ファイル ロック 排他 lock unlock などなど
それっぽいのが見つからない。。。

編集 削除