请考虑以下代码段:
pid_t cpid = fork();
if (cpid == -1) {
perror("fork");
exit(EXIT_FAILURE);
}
if (cpid == 0) { // in child
execvp(argv[1], argv + 1);
perror("execvp");
_exit(EXIT_FAILURE);
}
// in parent
Run Code Online (Sandbox Code Playgroud)
如果execvp返回,我该如何退出子进程?我应该使用exit()或_exit()吗?
这是关于Linux中的C语言.
我fork()在main()哪里创建了2个子进程.然后,在两个子进程中运行一个函数abc(),其中有一个局部变量x.我在里面写了一些价值.然后我打印这个变量的地址printf("%p",&x).
两个进程都打印SAME地址.我以为每个孩子都得到父母记忆的(独立)副本.我需要每个进程都有自己的变量x.我怎么能这样做或者我做错了什么?