当我运行第一个代码并立即按 ctrl-c 时,不会45
写入文件。但是当我运行第二个代码时,我确实得到了45
.
我不明白为什么在下面的代码中会发生这种行为?如果stdout
行缓冲不应该在我输入字符后输出?我错过了什么?
第一个代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp=stdout;
fp=fopen("myfile","w");
fprintf(fp,"%d",45);
getchar();
// return 0;
}
第二个代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp=stdout;
fprintf(fp,"%d",45);
getchar();
// return 0;
}
PS:我使用的是GCC,平台是Linux。