問題タブ [fifo]
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 - readline を FIFO でブロックする
fifo を作成します。
私はこのpythonコードを実行します:
私が望むように、それはreadlineで失速します。走る:
そして、私のプログラムはもうストールしません。行を読み取り、無限にループし続けます。新しいデータがないのになぜ停止しないのでしょうか?
また、「not fetchlistfile.closed」も調べてみました。書き込みのたびに再度開いてもかまいませんが、Pythonはfifoがまだ開いていると考えています。
php - ユーザー nobody による名前付きパイプのブロッキング
2 つの短いスクリプトがあります。最初の awk スクリプトは、大きなファイルを処理し、名前付きパイプ 'myfifo.dat' に出力します。2 番目の Perl スクリプトは、LOAD DATA LOCAL INFILE 'myfifo.dat'...
コマンドを実行します。これらのスクリプトは両方とも、次のようにローカルで実行すると機能します。
ただし、これらのスクリプトを PHP Web ページから呼び出すと、名前付きパイプがブロックされます。
awk および Perl スクリプトを変更して、通常のファイルへの書き込みと読み取りを行うと、PHP からすべてが正常に機能します。fifo と通常のファイルのパーミッションは 666 です (テスト用)。これらの操作は、名前付きパイプを介してはるかに高速に実行されるため、名前付きパイプを使用することをお勧めします。ブロックを解除する方法はありますか?
ps。なぜ私がこのすべての悪化に行くのか疑問に思っている場合は、この SO の質問を参照してください。
python - Python (Twisted) - fifo から読み取り、読み取りデータを複数のプロトコルに送信する
fifo ファイル (主に 1 つのライナー) からメッセージを読み取り、それらを irc チャネルに送信して連絡先をジャバーする、ある種のマルチ プロトコル ボット (jabber/irc) を作成しようとしています。これまでのところ、jabber と irc に接続するための 2 つのファクトリを作成できましたが、それらは機能しているようです。
ただし、fifo ファイルの読み取りに問題があります。データを取得するために、リアクター ループの外側でループ (ファイルを開く、行を読み取る、ファイルを閉じる、ファイルを開くなど) で読み取る方法がわかりません。送信する必要があり、そのデータを両方のプロトコルで送信するためのリアクター ループに取得します。私はそれを最善の方法で行う方法についての情報を探していましたが、暗闇の中で完全に失われました. 任意の提案/ヘルプをいただければ幸いです。
前もって感謝します!
c - * nix: "echo'動作開始'>/etc/.example":これはどのように実装されますか?
誰かが端末で次のことを実行するとします。
これを実行すると、サンプルプログラムは「動作を開始」します。
UNIX(-like)システムでは、そのようなものはどのように実装されますか?また、この種の動作は何と呼ばれますか?
erlang - erlang から名前付きパイプに読み書きする方法は?
名前付きパイプを介して読み書きするには、erlang アプリケーションが必要です。
名前付きパイプをファイルとして開くと、eisdir
.
次のモジュールを書きましたが、壊れやすく、多くの点で違和感があります。また、しばらくすると読み取りに失敗します。もっと... エレガントにする方法はありますか?
お気づきかもしれませんが、受け入れたり返したりするポート形式を模倣しています。パイプのもう一方の端を読み取り、デバッガーから起動される C コードを置き換える必要があります。
linux - Linux FIFO のデータが失われたようです
いくつかの作業を並行して実行したいbashスクリプトがあります。バックグラウンドで実行されるサブシェルに各ジョブを配置することでこれを行いました。同時に実行されるジョブの数はある程度制限されているはずですが、最初にいくつかの行を FIFO に入れ、次にサブシェルをフォークする直前に、親スクリプトがこの FIFO から行を読み取る必要があります。サブシェルをフォークできるのは、行を取得した後でのみです。これまでのところ、すべて正常に動作しています。しかし、サブシェルで FIFO から行を読み込もうとすると、FIFO にもっと多くの行があるように見えても、行を取得できるのは 1 つのサブシェルだけのようです。FIFOにさらに行がある場合でも、他のサブシェルが行を読み取れないのはなぜでしょうか。
私のテストコードは次のようになります。
出力ファイル /tmp/fy_date の内容は次のとおりです。
そこでは、次のような行が期待されます。
しかし、それは表示されず、発行するまで子 #2 プロセスがそこでブロックされます:
echo something > /tmp/fy_u_test2.fifo
c - 双方向 FIFO
双方向 fifo を実装したいと思います。以下のコードは機能していますが、双方向 fifo を使用していません。ネットでいろいろ調べたのですが、いい例がありません...
どうやってやるの?
ありがとう、
ライター.c:
READER.c:
go - キューの実装はありますか?
シンプルで高速な FIF/キュー用の Go コンテナーを提案できる人はいますか? Go には、 と の 3 つの異なるコンテナーheap
がlist
ありvector
ます。キューの実装に適しているのはどれですか?
c - FIFOの実装
次のコードを検討してください。
writer.c
reader.c
私の質問は:
fooとbarが何バイトになるかは事前にわからないので、reader.cから読み取るバイト数をどのように知ることができますか?
たとえば、readerで10バイトを読み取り、fooとbarが一緒に10バイト未満である場合、両方を同じ変数に入れ、必要ないためです。
理想的には、変数ごとに1つの読み取り関数がありますが、データのバイト数が事前にわかりません。
fooの書き込みと区切り文字のあるbarの間にwriter.cに別の書き込み命令を追加することを考えました。そうすれば、reader.cからのデコードに問題はありません。これはそれについて行く方法ですか?
ありがとう。
c - C 名前付きパイプ (fifo)。親プロセスが動かなくなる
フォークする簡単なプログラムを作成したいと思います。子は名前付きパイプに書き込み、親は名前付きパイプから読み取りと表示を行います。問題は、それが親に入り、最初のprintfを実行した後、それが奇妙になり、他に何もせず、2番目のprintfに到達せず、コンソールに入力する方法にすぎないことです。