-3

(while ループで) 別のプログラムを実行している子プロセス (exec を使用して呼び出された) から親プロセスに戻るにはどうすればよいですか。

サンプルコードはこちら

do
{
     if(fork() == 0)
     { 
        exec("running a program in while loop..") 
     }
     else
     {
        wait();
        printf("do you want to cont..\n"); // bk pt. 
        scanf(" %c",ch); //yes/no           
     }
}while(ch == 'y');

ここで、上記の pgm を実行すると、exec を実行して他の pgm を実行しますが、親プロセスに切り替えて、wait(); の後のステートメントから続行したいと考えています。

4

2 に答える 2

0

exec *関数は、プログラムのコードを引数として渡されたコードに置き換えるため、できません。フォーク(およびナイフ)を使用するだけです。

于 2013-01-04T09:11:01.263 に答える
0

子を作成した後、(少なくとも論理的には) 2つ の実行スレッドが並行して発生するため、「切り替える」必要はありません。

子が終了した場合、親は、wait()実際にwait()関数への有効な呼び出しであると想定して、の後にコードを続行する必要があります。

于 2013-01-04T09:11:16.817 に答える