問題タブ [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.
linux - mkfifo されたパイプが ~25 秒後にしか更新されないのはなぜですか?
を使用して、3秒ごとに7行のテキストデータを作成したmkfifoデバイスに書き込む1つのプログラムがありますprintf()
。cat /path/to/device
別の端末ウィンドウで読み取ろうとしています。ただし、3 秒ごとに更新する代わりに、25 秒ごとに 1 回だけ何かを出力します。なんで?更新を速くする方法は?(Ubuntu ワイリー)
c - C の mkfifo() によって生成されるセグメンテーション違反
これを数時間デバッグしようとしましたが、まだ行き詰まっています...
このコードの「mkfifo」呼び出しでセグメンテーション違反が発生します (残りの部分はここでは関係ないと判断したため、これはコード全体の一部にすぎません)。
この出力が生成されます(executableFileは私のファイルの名前です):
gdb バックトレースはこれを生成します:
「pipe.fifo」ファイルが作成されますが... よろしくお願いします!
編集:
error は単に error.c でそのように定義されており、error.h で署名されています。
c - デーモン群とメインプロセスの接続 - mkfifo
タイトルのようにデーモン (リーダーのないデーモンのグループ) をメイン プロセスに接続しようとしましたが、問題は、各デーモン (SIGUSR1 シグナルをサポートしている) からメイン プロセスにステートメントを送信する必要があることですが、私のコードではmkfifoを使用しましたが、まったく機能していません..
メインプロセスのソースは次のとおりです。
そして、ここに私がデーモンを作成するいくつかのソースコードがあります:
少なくとも私はデーモンを良い方法で作成していることについて確信が持てません..そして、後で実行できるシグナルをどこに置くべきですか?
何か提案はありますか?
git - git リポジトリに fifo という名前の UNIX を含めないことはできますか?
私は実験からこれに対する答えを知っていると思いますが、私のグーグルではそれについて決定的なものは何も見つかりませんでした. だから私は明確化を探しています。検討
status
コマンドは何も表示しません。私の結論は、名前付きパイプを git リポジトリに置くことはできないということです。私は正しい結論に達しましたか?それとも、ここで見逃したものがありますか?
c - クライアント サーバー実装の名前付きパイプ - サーバーは同じクライアントからの 2 つの要求をどのように区別するか
名前付きパイプを使用してクライアント サーバー モデルを実装しようとしました。これで、クライアントがサーバーにメッセージを 1 つだけ送信すると、サーバーは送信されたメッセージを識別して出力することができます。クライアントが複数のメッセージを同じサーバーに送信すると、サーバーはメッセージを区別できず、両方のメッセージを個別に出力する代わりに、両方のクライアント メッセージを一緒に出力します。これは私が使用しているコードです:
今、サーバー側で一度に 80 バイトを読み取ろうとしていることがわかっているため、すべての文字をまとめて読み取ることができますが、サーバー側で一度に 5 バイトを読み取ろうとすると、無限ループに陥ります。私のコンセプトに何か問題があるに違いありません。一度に 5 バイトを読み取るようにサーバー側を変更しているときに、疑問が 1 つあります。クライアントから送信されたすべてのメッセージを読み取った後にブロックしないのはなぜでしょうか。
linux - mode_t 0760 とはどういう意味ですか?
今日から名前付きパイプの勉強を始めます。新しい名前付きパイプを作成するには、この関数を使用する必要があることを読みました:mkfifo (const char* nom, **mode_t mode**);
例:
私の質問は、なぜ 2 番目の引数で " 0 " ( 0 760) から始めたのかということです。 7 所有者にすべてのアクセス許可を与える 6 はグループが読み書きできることを意味し、他のグループにはアクセス許可がないことを意味します
linux - Linux (C Linux) で忙しく待たずに fifo を聞く
(mkfifo() を使用して) FIFO を作成しましたが、何らかのプロセスがそれにデータを数回書き込むまで待つ必要があります。私は次のコードを書きました: (悪いスタイルは無視してください。例を簡潔にするためです)
忙しい待機を避けるために、次の行を追加しました。
(fd は FIFO の記述子です)
しかし、私はそれが本当に好きではありません。人工的に見えます。それを行うより良い方法はありますか?