【发布时间】:2012-07-05 13:45:55
【问题描述】:
当我运行第一个代码并立即按 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。
【问题讨论】:
标签: c stdio output-buffering