From: "青山 和光" Date: 1997-10-29T15:48:47+09:00 Subject: [ruby-list:5168] Re^2: dbm & flock まつもとさん、こんにちは。 >>[ruby-list:5095] Re: dbm & flock >>From: matz@netlab.co.jp (Yukihiro Matsumoto) >> >>汎用的な方法は無いですねえ.やはり"db名.pag"とかでロックする >>しか無いんではないかと.あるいはスレッドやマルチプロセスを使っ >>てそのdbmファイルに対してのアクセスを一元化してしまうとか. Perl5 ではこんな方法があるのですが、いかがでしょうか? $db = tie %hash, 'NDBM_File', 'dbm'; $fd = $db->fd; open(DB_FH, "+<&=$fd"); flock (DB_FH, LOCK_EX); ところで、RedHat の標準環境では dbm がうまくコンパイルされないようです。 require "dbm" で、ruby: can't resolve symbol 'dbm_clearerr' となります。 また、Slackware では、すでに開かれている dbm を開こうとすると、 Errno::EWOULDBLOCK になります。 適切な ndbm.h を持ってくれば良いのだろうと思いますが、どのあたりのを持っ てくるのがおすすめでしょうか? 青山 和光 Wakou Aoya.ma