プロが教える店舗&オフィスのセキュリティ対策術

 unixでファイルロックを試みているのですが、うまくいきません。open関数で得たファイル指定子にlockfを用いてみたのですがうまくいきません。ロックはされているようなのですが、他からファイルに書き込みができてしまうのです。
 flockやO_EXLOCKなどは、使えないのです。誰か、「こうすればいい!」といえる方、教えてください。

A 回答 (3件)

下記ページが非常に参考になると思います。


ご一読ください。

参考URL:http://tohoho.wakusei.ne.jp/wwwcgi8.htm, http://www.din.or.jp/~ohzaki/perl.htm#File_Lock
    • good
    • 0

僕も同じ事で悩んだことがあるのですが、他の書き込もうとするプロセスはlockfを使っていますか?


どうやらlockf等の関数は書きこみ自体を禁止にするのではなく排他制御のためのお約束みたいなもので、無視してしまえば当然のごとく?書込みできてしまうのではないかと思っています。・・・はっきりいって自信ありません。
便乗になってしまいますが、詳しい方いらしたら正確な事を教えて頂けないでしょうか?
    • good
    • 0

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に近い?という話です。
これで何かわかりましたら、お手数ですが
もう一度お願いします。

補足日時:2001/07/30 21:02
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A