問題タブ [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.
python - Pythonでソケットのファイル記述子を変更する
Python でソケットに関連付けられたファイル記述子を手動で作成し、mmap でメモリに直接ロードしようとしています。mmap を使用してファイルをメモリに作成するのは簡単ですが、ファイルをソケットに関連付ける方法が見つかりません。
ご回答ありがとうございます。
私が抱えている問題は、Python (またはオペレーティング システム) 用のソケットをこれ以上作成できないことです。「[errno 24] 開いているファイルが多すぎます」というエラーが表示されます。
エラーは、ディスク上にこれ以上ファイル記述子を作成できないためだと思うので、メモリ内に作成したいと思います。この制限を回避するには.
助言がありますか?
c - C:stdinおよびstd*エラー
Stdin
操作したいのですがStd*
。しかし、次のエラーが発生します。
プログラムを以下に示します。
更新されたエラー:ファイル記述子に関するサンプルプログラムをCで動作させるようにしようとしただけで、エラーレポートでかなり失われました
プログラムの実行を以下に示します。
python - Pythonで親から子にファイル記述子を渡す方法は?
マルチプロセッシングモジュールを使用しており、プールを使用して複数のワーカーを起動しています。ただし、親プロセスで開かれるファイル記述子は、ワーカープロセスで閉じられます。開いてほしい..!親と子の間で共有されるファイル記述子を渡す方法はありますか?
c - C:stderrをシステムコマンドからstdoutまたはファイルにリダイレクトする方法は?
shellコマンドは$ avrdude -c usbtiny
テキストをstderrに出力します。ヘッドレスなどのコマンドでは読めません。もっと多くのcosはstdoutではありません。テキストをstdoutまたはファイルにしたい。どうすればCでそれを行うことができますか?私は最後の質問で問題を解決しようとしましたが、まだ解決していません。
c++ - fopen の問題 - 開いているファイルが多すぎます
Win XP でマルチスレッド アプリケーションを実行しています。特定の段階で、スレッドの 1 つが fopen 関数を使用して既存のファイルを開くことができません。_get_errno 関数は、開いているファイルが多すぎることを意味する EMFILE を返します。利用可能なファイル記述子はこれ以上ありません。私のプラットフォームの FOPEN_MAX は 20 です。_getmaxstdio は 512 を返します。これを WinDbg で確認したところ、約 100 個のファイルが開いていることがわかりました。
fopen が失敗する理由は何ですか?
編集:
シンプルなシングル スレッド テスト アプリケーションを作成しました。このアプリは 510 個のファイルを開くことができます。このアプリがマルチスレッド アプリよりも多くのファイルを開くことができる理由がわかりません。ファイルハンドルリークが原因でしょうか?
javascript - node.jsで開いている接続の数を確認するには?
私は、tcp サーバー (tcp.createServer) と http サーバー (http.createServer) で node.js (v0.1.32) を実行しているマシンを持っています。HTTP サーバーは、ポート 80 のコメット ベースのアプリケーションからの長いポーリング要求 (それぞれ 50 秒続く) にヒットします。また、同じ目的で、iphone アプリケーションからポート 8080 に tcp ソケット接続があります。
しばらくの間、サーバーがそれ以上の接続 (特に、http 接続は問題ないように見えたのに tcp 接続!!??) を処理できず、再起動後にのみ正常になることがわかりました。
接続の負荷テストのために、tcp サーバーを作成して 2000 のリクエストを生成し、マシンのファイル記述子の最大制限 (デフォルトは 1024) に達した後、接続が失敗し始めることを確認しました。これは本当に非常に小さな数です。
したがって、ここでの初心者の質問: node.js でより多くの接続を処理するためにアプリケーションをスケーリングする方法と、この問題をどのように処理するかです。
現在アクティブな接続がいくつあるかを調べる方法はありますか?
ありがとうシャリフ
c - ファイル記述子がシーク可能かどうかを判断する方法は?
ファイル記述子がシーク可能かどうかを判断する移植可能な方法 (POSIX システム上) はありますか? 私の考えではlseek(fd, 0, SEEK_CUR);
、戻り値が-1であるかどうかを使用して確認することですが、これが偽陰性または偽陽性を与える可能性があるかどうかはわかりません。どのタイプのファイルがシーク可能/シーク不可であるかについて仮定を使用しfstat
たり作成したりすることは、良い考えのようには思えません。他のアイデアはありますか?
locking - ファイルを削除しようとしているときにファイルが変更されていないことを確認してください
POSIX環境で、ファイルをディスクから削除したいのですが、ファイルを削除する前にチェックサムを計算して、ファイルが変更されていないことを確認します。ロックは十分ですか?それを開き、リンクを解除し、チェックサムを計算してから閉じる必要がありますか(OSがiノードを削除できるようにするため)?他のプロセスがファイル上に開いているファイル記述子を持たないようにする方法はありますか?
少しコンテキストを与えるために、コードはホスト間でファイルの同期を実行します。リモートホストがファイルを削除したが、ファイルがローカルで変更されている場合、データが失われる可能性があります。
file - ファイル記述子制御プログラム/システムコールは必要ですか?
私は現在、特定のファイル記述子を閉じるために、いくつかのBSDフレーバーでsyscallを実装することを考えています。ファイル記述子は、PIDとファイル記述子番号のペアとして定義されます。プログラムやその他の奇妙な目的をテスト/デバッグするのに役立ちます。
とにかく、学習目的でやろうと思います。私がここで求めているのは、それは誰かにとって何とか役立つことができるかということです。自分の作品を公開して維持することはできますか?
エンドユーザーやプログラマーが必要ない場合、どのオペレーティングシステムも私のコードを受け入れるとは思いません。
アドバイスありがとうございます。
linux - ファイル記述子を調べますか?
ファイル*の代わりに生のファイル記述子でftell()が行うこと(ファイル内の現在の位置を返す)を行う方法はありますか?lseek()を使用して生のファイル記述子を探すことができるので、あるべきだと思います。
fdopen()を使用して、ファイル記述子に対応するFILE *を作成できることはわかっていますが、そうはしません。