- ベストアンサー
unixでのファイルロックの方法教えてください
unixでファイルロックを試みているのですが、うまくいきません。open関数で得たファイル指定子にlockfを用いてみたのですがうまくいきません。ロックはされているようなのですが、他からファイルに書き込みができてしまうのです。 flockやO_EXLOCKなどは、使えないのです。誰か、「こうすればいい!」といえる方、教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
下記ページが非常に参考になると思います。 ご一読ください。
その他の回答 (2)
- fatguitar
- ベストアンサー率0% (0/1)
回答No.2
僕も同じ事で悩んだことがあるのですが、他の書き込もうとするプロセスはlockfを使っていますか? どうやらlockf等の関数は書きこみ自体を禁止にするのではなく排他制御のためのお約束みたいなもので、無視してしまえば当然のごとく?書込みできてしまうのではないかと思っています。・・・はっきりいって自信ありません。 便乗になってしまいますが、詳しい方いらしたら正確な事を教えて頂けないでしょうか?
- toysmith
- ベストアンサー率37% (570/1525)
回答No.1
unixにおけるファイルロックはいくつかの種類があり、互換性はありません。 lockf(3):Posix.1準拠 flock(2):BSD準拠 fcntl(2):F_GETLKフラグはSVr4, SVID, POSIX, X/OPEN, BSD 4.3. Posix.1(ただし、仕様の記述があるだけで機能するという保証は無い) 御利用のUNIXはどの仕様に準拠しているのか教えて下さい。
補足
私が使っているunixの仕様はよく分からないのですが HP-UX(ヒューレット・パッカード社の開発) で、BSDよりはSVr5に近い?という話です。 これで何かわかりましたら、お手数ですが もう一度お願いします。