gpt4 book ai didi

c - Fork()之后,如何留在父进程中?

转载 作者:行者123 更新时间:2023-11-30 18:32:45 24 4
gpt4 key购买 nike

我这里有一个例子:

int runcmd(char *cmd)
{
char* argv[MAX_ARGS];
pid_t child_pid;
int child_status;

parsecmd(cmd,argv);
child_pid = fork();
if(child_pid == 0) {
/* This is done by the child process. */

execvp(argv[0], argv);

/* If execvp returns, it must have failed. */

printf("Unknown command\n");
exit(0);
}
else {
/* This is run by the parent. Wait for the child
to terminate. */

do {
pid_t tpid = wait(&child_status);
if(tpid != child_pid) process_terminated(tpid);
} while(tpid != child_pid);

return child_status;
}
}

这是 fork() 的经典示例fork()之后,控制权转到子进程。我怎样才能保持在父进程中,做一些事情。而不是立即跳到 child 身上?

谢谢

最佳答案

child 永远是 child 。 parent 永远是 parent 。 fork() 创建一个新进程,每个进程单独运行。如果您想在父级中执行某些操作,请在父级中执行此操作。

关于c - Fork()之后,如何留在父进程中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9980955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com