请问下面的程序一共输出多少个“-”?
int main(void)
{
int i;
for (i = 0; i < 2; i++) {
fork();
printf("-");
}
return 0;
}
运行结果
[misaki@localhost test]$ ./main
--------
结果分析
为啥会有8个’-'呢?我们把这个程序稍微修改一下再看下结果。
#include <stdio.h>
#include <unistd.h>
int main(void)
{
int i;
for (i = 0; i < 2; i++)
{
fork();
printf("-");
fflush(stdout);
}
sleep(1);
return 0;
}
[misaki@localhost test]$ ./main
------
现在又变成了6个’-’,我们先从以上这段程序开始分析。我们分别打印各个进程的pid和他们的ppid来让我们看的更清楚一些,并且查看以下进程树。
#include <stdio.h>
#include <unistd.h>
int main(void)
{
int i;
for (i = 0; i < 2; i++)
{
fork();
printf("ppid:%d,