問題タブ [file-locking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1058 参照

java - Java 5 と Java 6 の間での FileLock の変更

Java 1.5 では、java.nio.channels.FileLock は、すでにロックされているファイルを確認しませんでした。ここで参照

スニペットには次のように記載されています。

java.nio.channels.FileLock クラスは、他の FileChannel インスタンスによってすでにロックされているファイルをチェックします。

Java SE 6 は、別の FileChannel インスタンスを介してロックされた領域と重複する領域をアプリケーションがロックしようとすると、OverlappingFileLockException をスローします。以前のバージョンは、他の FileChannel インスタンスによって取得されたファイル ロックをチェックしませんでした。デフォルトでは、java.nio.channels.FileChannel.lock メソッドは、要求されたロックがこの Java 仮想マシンによって保持されている領域と重複しているかどうかをチェックします。

そのため、Java 6 より前のバージョンでは、複数のプログラムが同じファイルに書き込みを行っている場合 (各プログラムが排他的ロックを取得しようとしていた場合)、排他的ファイル ロックは機能しませんでした。Java 5 以前では、人々はどのようにこれを回避していたのでしょうか?

0 投票する
3 に答える
183 参照

perl - Perl で、作成時にロックされているファイルを作成する方法はありますか?

完全に書き込まれる前に、このファイルを探しに行く可能性のある他のプロセスが読み取りを開始しないように、作成時に読み取りに対してロックされるファイルを作成する必要があります。

作成してロックできることはわかっていますが、競合状態になる可能性があるのではないかと心配しています。

それとも私はここで何も心配していませんか?ファイルを書き込み用に開いてから、別のプロセスで読み取り用に開いた場合、書き込みプロセスがファイルを閉じるまで、読み取りプロセスは EOF を認識しませんか?

0 投票する
2 に答える
982 参照

asp.net-mvc - IIS7/ASP.NET がイメージでディレクトリをロックしないようにする

ASP.NET MVC 2 フレームワークを使用した ASP.NET webapp があります。これにより、ユーザーはファイルをアップロード フォルダーにアップロードできます。この問題は、サブフォルダー内の画像が Web ブラウザーによってアクセスされるときに発生します。

http://mywebapp/uploads/image_gallery/sub_folder/image.jpg

アップロード フォルダーは静的であり、ユーザーが変更することはできませんが、その下にあるものはすべて変更できるようになっています。

上記の例では、w3wp.exe が sub_folder ディレクトリにハンドルを作成しているように見えるため (sysinternals によるプロセス エクスプローラーを使用)、image_gallery フォルダーがロックされます。sub_folder ディレクトリの名前を変更することはできますが、名前を変更した後もハンドルはそのままのように見えますが、親フォルダー (この場合は image_gallery) の名前を変更することはできません。

フォルダー内を参照して、他の画像やファイルなどを表示することはできますが、親フォルダーの名前を変更することはできません。

これは MVC 2 フレームワークを使用しているため、次のようにアップロード フォルダーを除外しました。

global.asax に変換されるため、ASP.NET がこれらの画像を (MVC フレームワークの外部で) 直接提供していると想定しています。

私の質問は、IIS が特定のディレクトリにハンドルを設定したり、強制的にハンドルを削除したりするのを防ぐ方法はあるのでしょうか? ignoreroute が指定されていても、MVC 2 フレームワークは何かトリッキーなことをしていますか?

ヒントをお寄せいただきありがとうございます。

0 投票する
1 に答える
1230 参照

c# - 画像ファイルは破棄後に解放されません

私はいくつかの画像をダウンロードし、それらをarrarListに入れて後で処理するプロジェクトに取り組んでいます。コードの次の部分に問題があります。それは最初のダウンロードで動作しますが、どういうわけか最初のダウンロード後に保存されていたファイル イメージがロックされます。ロックを解除する方法が見つからないようです。File.Delete("BufferImg"); 「BufferImg」がプログラムの他の場所で使用されていない場合、ファイルが別のプロセスによって使用されているというエラーが発生します。私は何を間違っていますか?

}

0 投票する
1 に答える
828 参照

php - PHPスクリプトを並行して実行するには?

script1.php

script2.php

ブラウザーで script1.php を実行し、別のブラウザー ウィンドウで script2.php の直後に実行します。script2.php の session_start() は、script1.php の実行が終了するまで実行できません。

なぜそれが起こったのか、またphpスクリプトを並行して実行する方法は?

0 投票する
2 に答える
2664 参照

c# - 画像を arrayList に格納する

これが私がやろうとしていることです: スレッド B はいくつかの画像をダウンロードし、それらの画像を共有リソースに保存します: Static ArrayList IMBuffer; スレッド A は IMBuffer から画像を取得し、それに対して何かを行います。以下は私が得たものです:

スレッド B:

//何かをする

// 何か他のことをする

スレッド A:

ここに私が実行している問題があります。IMBuffer 内の画像はファイルストリームを使用して開かれたため、ストリームが破棄されると、次の行が表示されます: nextImg.Save(DLedIM); 「ファイルは別のプロセスによって使用されています」というエラーが発生しています。ただし、 fs.Dispose(); の場合。行がコメントアウトされている場合、プログラムは "BufferImg" をロックしており、その結果、初回以降は "BufferImg" にイメージをダウンロードできません。この問題を解決するにはどうすればよいですか? または、私がやろうとしていることを達成するためのより簡単な方法はありますか?

0 投票する
1 に答える
147 参照

parallel-processing - グランドセントラルディスパッチを使用してファイルリージョンロックを効率的に実装するにはどうすればよいですか?

私のプロジェクトでは、複数のスレッドからファイルの読み取りと書き込みを行っているため、ファイル ロックを実装する必要があります。試してみfcntl()ましたが、関数はスレッド間ではなくプロセス間のロックでのみ機能するようです。そのため、別の解決策を探しています。私が思いついた解決策 (これはおそらく最善ではありません) は、ファイルの各レコードにバイトを入れて、レコードがロックされているかどうかを示すことです。その後、ビジー ループを使用してバイトを読み取って確認できます。

それで、私は2つの質問があります。まず、ファイル領域のロックを実装する最も効率的な方法は何ですか? 次に、ビジー ループ アプローチを使用する場合、グランド セントラル ディスパッチで最適化するにはどうすればよいでしょうか。に送信されたブロックですべてのビジー ループを発生させることができると考えていましたdispatch_sync()。しかし、それが効率的に機能するかどうかはわかりません。

ありがとう。

0 投票する
1 に答える
1444 参照

php - flockを使用せずにPHPでファイルをロックする

ユーザーがファイルをアップロードするとき(ユーザーは複数のファイルをアップロードできます)

nohupバックエンドで実行する必要があるので使用しています。

私の元の設計では、実行されるたびにrun.phpディレクトリをスキャンしますscandir。を使用LOCK_EXしてファイルの排他ロックを取得し、ファイルにロックがある場合はファイルをスキップして次のファイルに移動するために使用します。ファイルにロックがある場合。問題は、サーバーにライブラリがなく、そのライブラリを使用してロックメカニズムを実行しているため、現時点では機能しないことです。それをインストールするのに1、2ヶ月かかるでしょう(私はそれを制御できません)。flockLOCK_NB//Do logicfcntl()flockflock

したがって、そのための私の回避策は、ロックとして機能する一時ファイルlock.txtを用意することです。ファイル名がlock.txtに存在する場合は、ファイルをスキップして次のファイルに進みます。

どうすればファイル名を削除できますlock.txtか?

さらに重要なことに、使用せずにphpでファイルをロックするためのより良い方法はありますflockか?

0 投票する
1 に答える
89 参照

php - スクリプトを同時に実行する if-else 問題

現在(サーバー制限)使えないflockので、代替のファイルロックシステムを作成中です。これが私のコードです。

これらのスクリプトを並べて実行すると。最初のスクリプトが完了するのを待ってから、2 番目のスクリプトを実行します。それらを同時に実行するにはどうすればよいですか? つまり、ロックが存在する場合、そのファイルをスキップして次のファイルに移動します。

0 投票する
2 に答える
6200 参照

c++ - C ++を使用してWindowsでファイルをロックするにはどうすればよいですか?

Windowsでファイルをロックして、現在のスレッド(同じプロセスの他のスレッドや他のプロセスがない)だけがファイルにアクセス(読み取り/書き込み)できるようにするにはどうすればよいですか?

可能であれば、fcntlのような解決策(記述子を持つファイルをロックする解決策)を教えてください。しかし、いずれにせよ、他の解決策も歓迎します。