我的朋友给了我一个谜语。我运行它。但没有得到预期的输出。代码是:
#include <stdio.h>
#include <unistd.h>
int main()
{
while(1)
{
fprintf(stdout,"hello-out");
fprintf(stderr,"hello-err");
sleep(1);
}
return 0;
}
输出不打印 hello-out。相反,它会像这样无限地打印:
hello-errhello-errhello-errhello-errhello-errhello-errhello-errhello-errhello-errhello-err
然后我尝试这样:
#include <stdio.h>
#include <unistd.h>
int main()
{
int i = 0;
while(i <= 5)
{
fprintf(stdout,"hello-out");
fprintf(stderr,"hello-err");
sleep(1);
i++;
}
return 0;
}
选择是:
hello-errhello-errhello-errhello-errhello-errhello-errhello-outhello-outhello-outhello-outhello-outhello-out
在 C 语言中,指令是逐行执行的。但为什么它不关注这里?