◀ANSI版開発トップへ
  • 2418 ロックファイルのOpen(1.3.5.3)
    • 2422 Re: ロックファイルのOpen(1.3.5.3)
      • 2424 Re2: ロックファイルのOpen(1.3.5.3)
        • 2427 Re3: ロックファイルのOpen(1.3.5.3)
          • 2428 Re4: ロックファイルのOpen(1.3.4.0 - 1.3.5.3)
            • 2429 Re5: ロックファイルのOpen(1.3.3.0 - 1.3.5.3)
            • 2430 Re5: ロックファイルのOpen(1.3.4.0 - 1.3.5.3)
  • [2418] ロックファイルのOpen(1.3.5.3) PAL 2002年10月17日 17:27

    PALと申します。

    これはもしかしたら仕様改善なのかもしれませんが。

    バッチファイル、IISのログなど、実行中でロックが掛かってる
    ファイルが開けません。
    旧バージョン(1.3.2.4など)ではリードオンリーで開けたかと
    思います。

    #1.3.3.0辺りで開けなくなっていると思いますが、どの
    #バージョンから変更になったかまでは確認しておりません。

    これは仕様変更によるものでしょうか。

    もしバグであればお手数ですが対応をお願い致します。
    • [2422] Re: ロックファイルのOpen(1.3.5.3) げんた 2002年10月18日 09:34

      >バッチファイル、IISのログなど、実行中でロックが掛かってる
      >ファイルが開けません。
      たしかに.
      cat > hoge
      で書き込み中のファイルhogeを作って開こうとすると「他のアプリケーションで使われています」と出てきますね.その場合でもメモ帳では開けますね.
      本当に読み込めない場合は「読み込みアクセス権がありません」と出るはずなのでファイルの開き方がまずいようです.

      >#1.3.3.0辺りで開けなくなっていると思いますが、どの
      >#バージョンから変更になったかまでは確認しておりません。
      以前は _lopen( file, FD_READ )で開いていたのが1.3.3.0から
      CreateFile(
      pFileName,
      GENERIC_READ,
      FILE_SHARE_READ,
      NULL,
      OPEN_EXISTING,
      FILE_FLAG_SEQUENTIAL_SCAN,
      NULL
      );
      に変更されています.多分パラメータのどれかがまずいんでしょうけど...
      • [2424] Re2: ロックファイルのOpen(1.3.5.3) 蛭子屋 2002年10月18日 11:06

        ▼ げんたさん
        > CreateFile(
        > pFileName,
        > GENERIC_READ,
        > FILE_SHARE_READ,
        > NULL,
        > OPEN_EXISTING,
        > FILE_FLAG_SEQUENTIAL_SCAN,
        > NULL
        > );

        FILE_SHARE_READでは読み込みだけが共有されて書き込みが共有されていないので
        他のプロセスが書き込んでるファイルが開けないんでは?

        http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_createfile.htm

        FILE_SHARE_WRITEも追加すればいいのかな。
        • [2427] Re3: ロックファイルのOpen(1.3.5.3) げんた 2002年10月19日 00:45

          >FILE_SHARE_WRITEも追加すればいいのかな。
          この変更でファイルは読めるようになったのですが,今度は上書き禁止の判定がおかしいようです.書き込めないファイルを開いても,タイトルバーに(上書き禁止)と入りませんし,読み込めないファイルを開こうとすると「文字コード判別エラー」と無関係(でもないけど,そう見える)なエラーメッセージが出ます.

          ファイル周りでもう少し調査が必要なようです.
          • [2428] Re4: ロックファイルのOpen(1.3.4.0 - 1.3.5.3) Moca 2002年10月21日 15:13

            ご無沙汰しております。
            妙な読み込みクラスを作った張本人です。
            ご迷惑おかけしております。
            ▼ げんたさん
            > ファイル周りでもう少し調査が必要なようです.
            読み込み中に,他のプロセスの書き込みでファイルサイズが縮小した場合,おそらく無限ループに陥ります。
            このあたりも直さないと...
            • [2429] Re5: ロックファイルのOpen(1.3.3.0 - 1.3.5.3) もか 2002年10月21日 15:46

              1.3.4.0ではなく,1.3.3.0からでした。
            • [2430] Re5: ロックファイルのOpen(1.3.4.0 - 1.3.5.3) げんた 2002年10月21日 19:33

              >読み込み中に,他のプロセスの書き込みでファイルサイズが縮小した場合,おそらく無限ループに陥ります。
              マジッ...ショック...

              ところでその例のクラスですがProgress出力のためかファイルサイズを取得していますよね.ファイルであると限定せずに外部からストリームのように読み込む形式であればパイプからの入力や圧縮ファイルの直読み込みなどもできるのではないかと思いました.