waitpid

    3

    3答えて

    子プロセスがファイルの実行に失敗したことをマスタープロセスがどのように知ることができますか?たとえば、次のコードでは、run()を使って0以外の値を返す方法を教えてください。ありがとう! #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> enum ErrorType {

    0

    1答えて

    まず、私は何かをする子供をフォーク、 と私はwaitpid(-1, &child_status, WNOHANG)を使用します。親が子を終了するのを待つのではなく、親を続けるようにする。 子供がそのプロセスを終了した時期はどうすればわかりますか?

    0

    1答えて

    私はsys_wait4に(それはwait()またはwaitpid()への呼び出しを介して到達された)我々はその構造体のタスクに保存されている特別なキューに現在のプロセスを挿入することを参照してください。私はかどうかを確認したいのであれば DECLARE_WAITQUEUE(wait, current); add_wait_queue(¤t->wait_chldexit,&wait)

    2

    1答えて

    私の質問は、パイプに関するプロセスの実行を制御する方法、具体的にはwait/waitpidの実装についてです。私は、次のコマンドls | head -3用のパイプを作成すると 、私は次のようにします。 私はパイプを作成し、子供のために子供 を作成するプロセスをフォーク、私は標準入力のためのdup2のを呼び出して、私は親 にパイプの入力側を閉じて、私は lsコマンドを実行し、標準出力のためのdup2

    0

    1答えて

    待つ - 私の次のprintfが消えます。子プロセスがstdoutに書き込んでいるので、私はそれを推測しています。 waitpidを使用しても問題はありません。私の次のprintfは、子プロセスが終了した後にのみ印刷されるためです。時には、ユーザが非ブロックコマンドを実行したい場合、waitpidを使用しないでください。次に私のprintfが消えます。 sleep(1)を使用すると、この問題も解決

    1

    2答えて

    私は自分のプロセスを子プロセス用に作成しようとしていますが、時間間隔ごとに何かを印刷します。 waitpid()が終了すると、itimer、waitpid()、SIGALRMの印刷を処理し、タイマーを停止するようにスケジュールするのが現在の計画です。 私が理解できない部分は、SIGALRMがwaitpid()を妨害するのを防ぐことだけです。 私はマニュアルページを調べましたが、これに関するフラグは

    2

    1答えて

    wait/waitpidのデフォルトの動作は、プロセスの状態変化を待つことです。私が見つけることができないのは、同じpid_t引数を使用する2つのプロセスwaitpidの予想される動作です。 実行と復帰の両方を実行するか、状態の変化に気付いた競合状態ですか?

    0

    2答えて

    fork()で3つの子プロセスを作成したい。子プロセスが毎回の後に20倍の数1と睡眠1ミリ秒を印刷する必要があります #include <unistd.h> #include <stdio.h> #include <stdlib.h> void main(){ int pid = fork(); if(pid < 0){ /* was not success

    9

    2答えて

    私はプロセスが完了するのを待つのにwaitpid()が使用されていることを知っていますが、どのように使用するのですか? 私がしたいことは、2人の子供を作り、最初の子供が終わるのを待ってから、もう1人の子供を殺してから退室することです。 waitpid()の //Create two children pid_t child1; pid_t child2; child1 = fork();

    1

    2答えて

    私はCでネットワークインタフェースをリッスンし、クライアントを受け入れるシンプルなサーバー/クライアントプログラムを実行しています。各クライアントは、フォークされたプロセスで処理されます。 私が持っている目標は、クライアントが子プロセスから切断されると親プロセスに知らせることです。 現在、私のメインループは次のようになります。 for (;;) { /* 1. [network] Wa