From: SATOH Fumiyasu Date: 2013-02-28T17:21:09+09:00 Subject: [ruby-list:49231] Re: PDF ファイルが Adobe Reader などで開かれているかを検知したい さとうふみやす @ OSSTech です。 At Thu, 28 Feb 2013 16:27:33 +0900, Masaya TARUI wrote: > どうもflockからは見れない所でロックがかけれてるようで、pdfを開いてても排他ロックとれちゃいますね。 flock によるファイルロックでも fcntl によるバイト範囲ロックでも ない共有モードによるロックです。Windows の CreateFile() の dwShareMode を参照: http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx > vista 以降ならちゃんと情報がとれる方法もある(http://nyaruru.hatenablog.com/entry/20070426/p1)ようですが、 > > 簡単に調べるだけなら、 > movable = open("a.pdf","ab"){true} rescue false > という方法で逃げれると思います。 これでいいと思います。 > 2013年2月28日 14:17 Takeshi Iogawa : > > UNIX系なら、flock() システムコールでしょうけど、Windowsの場合、 > > WIN32API のなかにファイルのロック・アンロックのAPIが用意されて > > いるようです(ざざっとぐぐったダケなので詳細はすみません) -- -- Name: SATOH Fumiyasu @ OSS Technology Corp. (fumiyas @ osstech co jp) -- Business Home: http://www.OSSTech.co.jp/ -- GitHub Home: https://GitHub.com/fumiyas/ -- PGP Fingerprint: BBE1 A1C9 525A 292E 6729 CDEC ADC2 9DCA 5E1C CBCA