一道关于fork和printf的题
以下有4段代码,问分别输出什么
#include<stdio.h>
#include<unistd.h>
void main()
{
int i=0;
for(;i<2;i++){
printf("a");
fork();
}
}
我的答案:8个a。实际答案:8个a
#include<stdio.h>
#include<unistd.h>
void main()
{
int i=0;
for(;i<2;i++){
fork();
printf("a");
}
}
我的答案:8个a。实际答案:8个a
#include<stdio.h>
#include<unistd.h>
void main()
{
int i=0;
for(;i<2;i++){
printf("a\n");
fork();
}
}
我的答案:3个a。实际答案:3个a
#include<stdio.h>
#include<unistd.h>
void main()
{
int i=0;
for(;i<2;i++){
fork();
printf("a\n");
}
}
我的答案:6个a。正确答案:6个a
做这种类型的题目,只需要记住printf只会把数组存储在缓冲区中,而不会输出到屏幕中,只有当刷新缓冲区时才会输出到屏幕中,目前刷新