简而言之,我需要使用mkdir
执行3个命令chdir
,pwd
和fork
。
情况:我有一个父进程,它会分配到执行mkdir
的子进程。
问题:该子进程是否会成为执行chdir
的另一个子进程的父进程?
我真的希望你理解我的问题。
答案 0 :(得分:0)
该子进程是否会成为执行chdir
的另一个子进程的父进程?
这取决于你如何编写你的代码。如果父母创建了3个孩子,并且每个孩子在执行命令后退出,那么孩子就不能成为父母。
示例:强>
pid_t kid;
int I = 0;
int status;
for (I = 0; I< 3; I++) {
kid = fork();
if (-1 == kid) {
perror("fork");
exit(1);
} else if (0 == kid) {
// execute command
exit(0);
}
}
while (wait(&status) != -1)
exit(0);
如果父母创建了一个孩子并等待它。孩子执行一个命令,然后创建另一个孩子,然后孩子的大孩子可以成为父母。
示例:强>
pid_t kid;
int I = 0;
int status;
int last_child = 2;
for (I = 0; I < 3; I++) {
kid = fork();
if (-1 == kid) {
perror("fork");
exit(1);
} else if (0 == kid) {
// execute command
if (I == last_child)
exit(0);
}
// parent will wait here
wait(&status);
}
exit(0);
希望它有所帮助。