【发布时间】:2016-04-13 18:47:54
【问题描述】:
我想问一下这段代码有没有可能打印190?
父亲 pid =9 孩子 pid = 10 . . .
pid_t pid = fork();
if (pid<0)
{
exit(1);
}
else if (pid>0)
{
printf("%d",getpid());
exit(0);
}
else
{
char *const argv[] = {"sleep","1",NULL};
execv("/bin/sleep", argv);
printf("%d",getpid());
}
【问题讨论】:
-
exit)0(?请务必在发帖前检查您的输入。 -
/proc/sys/kernel/sched_child_runs_first的值是多少? -
@MarkPlotnick,我认为这不是重点。问题似乎是父母和孩子的一个
printf()调用的输出是否可以混合在一起。 -
问题是如果执行失败,屏幕上的输出会是什么
-
那么在您的示例代码中包含
execv()调用的目的是什么?您认为execv()失败与根本不被调用有什么区别?