C 如何返回到父进程。。。。?

C 如何返回到父进程。。。。?,c,C,如何从正在运行另一个程序(在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"

如何从正在运行另一个程序(在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()之后从语句继续

您不能,因为exec*函数会用作为参数传递的代码替换程序的代码。只需使用叉子(和刀)。

您不需要“切换”,在创建子线程后,您有两个并行执行的线程(至少从逻辑上讲)


如果子级退出,则父级应在
等待()之后继续执行代码,假设这确实是对
函数的有效调用。

这没有意义;父进程和子进程是并行运行的两个独立进程。这真是一个毫无意义的问题。还有一个不匹配的括号。我想我没有正确地提出我的问题。我同意两个进程并行运行。由于父进程正在等待,子进程将继续执行。但是子进程在continuos while循环中。现在让我们假设我想终止子进程,我可以显式地使用信号。但我不想这样做。我想通过从键盘获取输入来继续我的父程序。我将执行fork()。但这次我将运行另一个程序来终止之前调用的子程序(exec pgm running continuosly)。。(一个switch case语句可以在doin fork之前编写,这样它就可以根据实例运行exec)。假设:在案例1中:我将继续运行exec pgm,在案例2中:我将运行一个pgm,它将杀死exec pgm。现在..请给我一个解决方案,如何做到这一点…?我认为您使用的表达式是“两个执行线程”可能会进一步混淆已经非常混乱的OP。fork调用之后有两个单独的过程-在这个事实的背景下,他的问题毫无意义。