目录
一、例题一
1、打印几个A?产生几个进程?
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
int i=0;
for(;i<2;i++)
{
fork();
printf("A\n");
}
exit(0);
}
2、分析
3、结果
打印出6个A。子进程2个,fork复制后有4个父进程,共6个进程。
printf("A\n");\n表示直接打印出来。
二、例题二
1、打印出几个A?产生几个进程?
//(2)打印几个A?
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
int i=0;
for(;i<2;i++)
{
fork();
printf("A");
}
exit(0);
}
2、分析
3、结果
打印出8个A。子进程缓存后fork,变成4个,fork复制后有4个父进程,共8个进程。
printf("A");表示放入缓存区。
三、例题三
1、找到下面代码的区别,理解缓存区的存在。
//(3)对比以下两个代码,看看各自打印几个A?(理解缓冲区)
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
printf("A\n");
fork();
exit(0);
}
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
printf("A");
fork();
exit(0);
}
2、结果
有缓存区的,fork复制后变成两个。
四、例题四
1、 打印出几个A?
//(4)打印几个A?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
fork()||fork();
printf("A\n");
exit(0);
}
2、分析
3、结果
五、例题五
1、打印出几个A?
//(5)打印几个A?
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
fork()&&fork();
printf("A\n");
exit(0);
}
2、分析
3、结果
如有错误,敬请指正。
您的收藏与点赞都是对我最大的鼓励和支持!