2012-01-11 7 views
4

ディレクトリでflockまたはlockfが動作しますか? 私はLinuxマシンでCのディレクトリをロックする別の方法はありますか?LinuxマシンでCのディレクトリをロックするには

+0

ロックの意味を定義する必要があります。 –

+1

ディレクトリを読み取り専用にしてください。これは "ロックされた"ディレクトリの概念に最も近似しているようです。 –

+1

なぜディレクトリをロックしますか? 、O_NOCTTYを| O_CREAT | $ます。mkdir TESTDIR $ straceの群れTESTDIR -c 'エコーfoo' で ... ( "TESTDIR"、O_RDONLYオープン: –

答えて

1

はい、ファイル/ディレクトリに群れの使用についての詳細情報は、あなたが書き込み用のディレクトリを開くことができないので、それはあなたがそれに書き込みロックを取得することができないことを意味here

4

を見つけることができます。

も、あなたができれば、flockfcntlとPOSIXロックの他の種類は助言しているので、彼らが実際に物事をやってからロックを尊重していないソフトウェアを防ぐことはできませんのでご注意ください。

おそらく、ファイルシステム全体をロックするxfs_freezeのようなものを見たいと思うかもしれません。しかし、おそらくあなたのユースケースには役に立たないでしょう。

+0

あなたは排他ロックを取得するために書くためにそれを開く必要はありません0356)= -1 EISDIR(ディレクトリである) open( "testdir"、O_RDONLY | O_NOCTTY)= 3 flock(3、LOCK_EX)= 0 ... –

+1

私は '' flock'スタイルのロック。 'fcntl'スタイルのロックでは、書き込みロックを要求するために書き込みアクセスが必要なようです。 – Celada

関連する問題