サーバにテキストファイルがあり、
他のパソコン(複数台)から、サーバのテキストファイルを書き換えています。
テキストファイルの内容を書き換える際に、
CreateFile を使用し、テキストファイルの排他制御をおこなっているのですが、
サーバのテキストファイルをOpenしているときに、
LANケーブルが抜かれるなどして、CloseHandler が出来なくなってしまうと、
サーバのテキストが排他制御のままになってしまいます。
この場合、排他制御を解除する方法はあるのでしょうか?
VC++ 6.0
MFC
サーバ: Windows XP または Linux
追記
サーバが WindowsXPだと
CreateFileを行ったパソコンのLANケーブルを抜き
5分程まってから、サーバのテキストファイルを開くと
排他制御が解除されています。
これは、OSが勝手に解除しているのでしょうか?
また XP 以降だと、解除されるものと思っていいのでしょうか?
追記
サーバが WindowsXPだと
CreateFileを行ったパソコンのLANケーブルを抜き
5分程まってから、サーバのテキストファイルを開くと
排他制御が解除されています。
これは、OSが勝手に解除しているのでしょうか?
また XP 以降だと、解除されるものと思っていいのでしょうか?
Linux server に windows client から接続ということは samba と仮定する。
server 側でファイルロックされたままになってしまうということは、
そのファイルは永遠に使えないということなので samba にも自動 unlock の
機構は備わっている。
samba の場合 keepalive や deadtime で指定することができる。
# URI が長すぎるので直接リンクできそうに無いので
http://wiki.samba.gr.jp/ から J0063 で検索とか。
Windows server 側の資料はほかの人にお任せ。
tetrapod さん
ありがとうございます。
そうです、samba です
やはり、解除する機構があったんですね。
Windows に関しての資料を探してみたんですが、
全然見つからないですね。。。
なかなかググる単語がむつかしいです。
Windows 共有 解除 ファイル ロック 排他 lock unlock などなど
それっぽいのが見つからない。。。
ツイート | ![]() |