タグ

2016年3月12日のブックマーク (1件)

  • flock(LOCK_EX) で EBADF - tmtms のメモ

    ちょっとハマったのでメモ。 ファイルを flock() で排他的にロックするために次のようにすると成功します。 % ruby -e 'File.open("hoge").flock(File::LOCK_EX); puts "OK"' OK が、NFS 上で同じことをやると失敗します。 % ruby -e 'File.open("hoge").flock(File::LOCK_EX); puts "OK"' -e:1:in `flock': Bad file descriptor @ rb_file_flock - hoge (Errno::EBADF) from -e:1:in `<main>' 7年前に書いたんですが、Linux は NFS ファイルシステムに対して flock() すると fcntl(F_SETLK) を使います。 で、fcntl(F_SETLK) は flock()

    flock(LOCK_EX) で EBADF - tmtms のメモ
    ngyuki
    ngyuki 2016/03/12
    しらなかった