問題タブ [mkfifo]

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 に答える
591 参照

java - プロセス間通信 FIFO java

こんにちは、FIFO を使用して Java で IPC を実装しようとしています。

次に、FileWriterを開こうとしました

しかし、この行でブロックされます。

何が問題なのですか?

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

c - FIFO に書き込まれたすべてのメッセージが読み取り時に受信されるわけではありません

Linux で C の fifo ファイルを使用しているときに奇妙な問題が発生しました。

コードから始めましょう:

ここで、コードで実行したいことの詳細を説明します。

このようなプログラムを実行した後:

端末に入れたい:

しかし、これの代わりに、私はこれだけを得ています:

問題は、FIFO にいくつかのメッセージを書き込みたいのですが、FIFO を読み取ることによって、そこに格納されているテキスト全体を受信することです。しかし、残念ながら、最後のメッセージのみが標準出力 (この場合は端末) に保存/書き込まれます。実行されたコマンドは次のとおりです。

この行を削除しようとしました:

FIFO ファイルが既に存在する場合、この行で既存の FIFO ファイルが作成され、上書きされる可能性があると考えたからです。しかし、これは何も変わりませんでした。

では、これを意図したとおりに機能させるにはどうすればよいでしょうか?

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

c - fifo で同時に読み取りと書き込み (バック)

fifo を使用して、file1 の内容を他の file2 にコピーしようとしています。fifo に書き戻したい最初の 4 文字 (file1 から fifo にコンテンツを書き込むときではなく、読み取り中) にそれを file2 にもコピーします。ただし、最初の 4 文字は後ろに追加されず、途中でランダムに挿入されます。私のコードは

さて、ターミナルの場合、私は実行します

$ ./a.out a.txt b.txt

a.txt から b.txt にコピーしたいのですが、b.txt には a.txt と最初の 4 文字が含まれており、文字間にランダムに挿入されています。

0 投票する
6 に答える
2505 参照

java - Java で読み取られるブロッキング ファイルの設定

Java で読み込むブロッキング ファイルを設定したいと思います。つまり、によってラップされFileInputStream、任意のread()メソッドが呼び出されると、呼び出しがブロックされるようなファイルを用意します。

OSに依存しない簡単な方法は考えられません.UnixのようなOSではmkfifo、そのファイルを使用してFIFOを作成して読み取ることができます。考えられる回避策は、非常に大きなファイルを作成してそこから読み取ることです.スタックをキャプチャする前に読み取りが完了する可能性は低いですが、それは醜くて遅いです.

対応するソケットのread()ケースは簡単にセットアップできます。自分でソケットを作成してそこから読み取ると、確定的なブロッキングを行うことができます。

その目的は、メソッドのスタックを調べて、そのような場合にトップ フレームが何であるかを判断することです。実行中のすべてのスレッドのスタック トレースを定期的にサンプリングし、そのスレッドが現在行っていることを分類しようとするコンポーネントがあるとします。実行できることの 1 つは、ファイル IO です。そのため、ファイル IO 中に「スタックのトップ」がどのように見えるかを知る必要があります。私はすでに実験(さまざまな方法でファイルを読み取り、スタックをサンプリングするだけ)によってそれを決定しましたが、これが変更された場合に失敗するテストを書きたいと思っています。

このようなテストを作成する自然な方法は、ファイルの読み取りを行うスレッドを開始してから、トップ フレームを調べることです。これを確実に行うには、ブロッキング読み取りが必要です (そうしないと、スタック トレースが取得される前にスレッドが読み取りを終了する可能性があります)。

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

c - mkfifo でスーパー ユーザー プロセスからアクセス許可を付与する

スーパーユーザープロセスを使用してパイプを作成する必要がありますmkfifo()。そのパイプは、スーパーユーザーではないプロセスから書き込み可能でなければなりません。

読者:

ライター:

./writerとを呼び出しますsudo ./reader

私のライターがパイプに書き込もうとすると、セグメンテーション違反が返されます。そして、調べてみると、/tmp/myfifoそのアクセス許可が見つかりましたprwxr-xr-xが、必要ですprw-rw-rw-

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

c - ループがループの継続に失敗する

特定のFIFOが書き込まれるたびに新しいフォルダーを作成するコードに取り組んでいました。

}

ただし、実行すると次のようになります。

私は何を間違えましたか?ループを継続せず、さらに入力を待たないのはなぜですか? 書き込み停止時にFIFOが閉じないように読み書き用にFIFOを開いているのですが、うまくいきませんでしたか?