問題タブ [file-descriptor]
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.
linux - 一部の Linux プログラムで奇妙な記述子が閉じる
一部の Linux デーモン (sendmail など) を追跡しているときに、最初にいくつかの記述子 (通常は 3 から 255 の範囲) に対して close() を呼び出すものがあることに気付きました。これは意図的に行われているのでしょうか、それとも何か他のことをしたことによる何らかの副作用でしょうか?
java - Hadoop0.21.0で予想されるオープンファイル記述子の消費
Hadoop 0.21.0を考えると、フレームワークは、個々のマップに関連する開いているファイル記述子の数に関してどのような仮定を行い、操作を減らしますか?具体的には、ジョブの実行中にHadoopが新しいファイル記述子を開いたり、ディスクにスピルしたりする原因となるサブオペレーションは何ですか?
MultipleOutputs
(これは、システムによって提供される保証に非常に明確にねじ込まれているため、意図的にの使用を無視しています。)
ここでの私の理論的根拠は単純です。Hadoop用に作成する各ジョブが、各マッパーまたはレデューサーに必要な有限数のファイル記述子を保証するようにしたいのです。Hadoopは、これをプログラマーから元気に抽象化します。これは、サーバー管理中にドロップする他の靴がなければ、通常は良いことです。
私はもともと、サーバー障害についてクラスター管理側からこの質問をしていました。私はプログラミングも担当しているので、この質問はここでも同様に適切です。
python - Pythonで開いているファイルが多すぎます
私は、ファイルを大量に消費する一種のテストスイートを作成しました。しばらくすると(2時間)、が表示されIOError: [Errno 24] Too many open files: '/tmp/tmpxsqYPm'
ます。すべてのファイルハンドルを再度閉じるかどうかを再確認しました。しかし、エラーはまだ存在します。
resource.RLIMIT_NOFILE
を使用して許可されたファイル記述子の数と現在開いているファイル記述子の数を把握しようとしました。
したがって、次のテストを実行すると、次のようになります。
私はこの出力を取得します:
奇妙なことに、開いているファイル記述子の数が増えると予想していました。私のスクリプトは正しいですか?
私はPythonのロガーとサブプロセスを使用しています。それが私のfdリークの理由でしょうか?
ありがとう、ダニエル
c# - ファイル記述子を開く/使用する方法
特定の問題があります。変更できないプログラムがありますが、オフィス内で使用したい機能を提供しています。そのため、ドキュメントを受け取り、プログラムをバックグラウンドで実行し、ドキュメントを stdin に配置する Office 用のプラグインを作成しています。プログラムは stdout に書き込み、それをプログラムに戻して後処理します。
プログラムが標準入力に入れたくないパスワードを要求することを除いて、これはすべて正常に機能します。このツールには、他の入力ストリームからパスワードを読み取る方法がありますが、読み取るファイル記述子の番号が必要です。
ここに私の質問があります: (.net 環境内で) このプログラムにパラメーターとして与えることができる番号を持つファイル記述子でストリームを開くにはどうすればよいですか? 理想的には、次のようなものを書きたいです。
ect ..(ただし、魔法のように修正されるため、機能します;))
誰かが私を助けてくれることを願っています。
ありがとう
c - Windows/mingw では、`fcntl(fd, F_GETFL) | O_ACCMODE`?
Mingw を使用して Windows でプログラムをコンパイルしています。開いているファイル記述子のアクセス モードを取得するにはどうすればよいですか?
c++ - inotify を使用した監視ファイル
inotify を使用してローカル ファイルを監視しています。たとえば、"/root/temp" を使用しています。
このファイルを削除すると、プログラムはread(fd, buf, bufSize)
機能によってブロックされます。新しい「/root/temp」ファイルを作成しても、プログラムは読み取り機能によってブロックされたままです。監視対象のファイルが作成されたことをinotifyが検出でき、読み取り機能がfdから何かを取得して、読み取りが永久にブロックされないようにすることができるかどうか疑問に思っています。これが私のコードです:
私はすべてのイベントを監視しました。
windows - WindowsのソケットとHANDLEの違いは何ですか?
LinuxサーバーをWindowsで実行しようとしています。
Linuxでは、ソケットとファイル記述子は同じように扱われます。一部のシステムAPIは、ソケット記述子とファイル記述子の両方で使用できます。
ただし、私はWinsockでソケットを扱い、WIN APIでHANDLE(ファイル記述子)を扱います。
したがって、整数がソケットまたはハンドルであることを知る必要があります。
今ここに質問があります:
socket()とopen()からの戻り値はWindowsで同じですか?
それらが常に異なる場合は、システムのものをラップするために独自のsocket()とopen()を作成できます。整数がソケットであるかHANDLEであるかにかかわらず、システムのAPIからの戻り値を記録します。
それらが同じであるならば、私はそれに対処する考えがありません。
android - setDataSource(FileDescriptor)メソッドを呼び出すときの例外(失敗しました。:status = 0x80000000)
ビデオストリーミングアプリケーションを開発していますが、FileDescriptorを使用してsetsetDataSourceを呼び出すときにスタックします。ダウンロード中にビデオをアプリケーションで再生したいので、最小バイト数を取得したら、それらのバイトを別のファイルに移動して、元のファイルにダウンロードしている間に別のファイルで再生できるようにします。
したがって、次のようにすべてのパケットでメディアパイヤーを開始できるかどうかを確認します。
これはstartMediaPlayerメソッドコードです:
次のコードでファイルを移動します。
そして最後に、ここでMediaPlayerオブジェクトを作成します。
これは私が得る例外です:
私は午前中ずっとここで立ち往生していて、そのエラーに関する情報は本当に見つかりません。ファイルパスを使用するように言われた人もいますが、コメントで説明している他の例外があります(FileInputStreamの作成のすぐ上)。
私はここで本当に迷子になっています、どんな助けでも大歓迎です
asynchronous - ファイル記述子: 任意の長さのデータを非ブロックで「書き込む」ことは可能ですか?
ファイル記述子をハンドルとして (おそらくカスタム カーネル ドライバーを使用して) 使用して、任意のサイズのデータを読み書きすることは可能ですか?
または、ファイル記述子を介してデータを転送するために使用されるバッファ サイズに OS によって義務付けられた制限はありますか?
そんなこと知ってる
- ディスク アクセス時間が遅いためにファイルがブロックされる
- ソケット(ストリームと dgram) には最大パケット サイズがあります
- パイプとfifosにも何らかのバッファ制限があるようです
書き込み時にブロックしない fd を作成したいと思います。
例
使用法は次のようになります。
バックエンドの実装は次のようになります (単純化しすぎてすみません):
javascript - Operaは長いポーリングソケットを開いたままにします
長いポーリングとオペラに問題があります。私自身はcプログラマーであり、ニーズに合わせてカスタマイズされたhttpデーモンを開発しました。この場合、大量の接続を処理できる長いポーリングサーバーが必要でした。
問題は、オペラがサイト上のリンクをクリックした後でも、どういうわけかこれらの長い投票を開いたままにし、もちろん新しい投票を開くことです。iframe内にjavascriptを含めようとする基本的なロングポーリング手法を使用します。これは他のブラウザでも問題なく機能しますが、サーバー側で以前のポーリングを強制的に閉じても、オペラはそれらを再び開きます。トラフィックの多いサイトでは、サイトを閲覧するだけでデーモンの空きファイル記述子がすぐに不足する可能性があるため、これはあまり良くありません(サイトをクリックするたびに新しい長いポーリングが開き、古いものは閉じないため) )。ページの更新は同じことを引き起こしません、それは正しいことをします:長いポーリングを閉じて、新しいものを開きます。オペラを閉じた後、すべてのファイル記述子が閉じられ、すべてが再び正常になります。
それで、http-daemonにオペラ用の特定のヘッダーを追加する必要がありますか、それともJavaScriptに何か問題がありますか?
編集:バージョンを使用してテスト:Opera / 9.80(X11; Linux x86_64; U; en)Presto/2.6.30バージョン/10.63