From: matz@... (Yukihiro Matsumoto) Date: 1997-10-29T16:15:29+09:00 Subject: [ruby-list:5169] Re: Re^2: dbm & flock まつもと ゆきひろです In message "[ruby-list:5168] Re^2: dbm & flock" on 97/10/29, 青山 和光 writes: |Perl5 ではこんな方法があるのですが、いかがでしょうか? | |$db = tie %hash, 'NDBM_File', 'dbm'; |$fd = $db->fd; |open(DB_FH, "+<&=$fd"); |flock (DB_FH, LOCK_EX); ruby的には db = DBM.open(dbm) fh = IO.open(db->fd, "r+") fh.flock(File::LOCK_EX) って感じですか.もちろん今の段階ではDBM#fdなんてメソッドはあ りませんし,flockはFileオブジェクトにしか通用しないんでなか なか難しいものがありますが. |ところで、RedHat の標準環境では dbm がうまくコンパイルされないようです。 |require "dbm" で、ruby: can't resolve symbol 'dbm_clearerr' となります。 うっ,dbm_clearerrがないんですか.そういうものなんでしょうか. |また、Slackware では、すでに開かれている dbm を開こうとすると、 |Errno::EWOULDBLOCK になります。 これはなんなんでしょうね.ロックしている? |適切な ndbm.h を持ってくれば良いのだろうと思いますが、どのあたりのを持っ |てくるのがおすすめでしょうか? gdbmをお使いになるというのはどうでしょう? まつもと ゆきひろ /:|)