最初のコードを実行してすぐに ctrl-c を押す45
と、ファイルに書き出されません。しかし、2 番目のコードを実行すると、45
.
以下のコードでこの動作が発生する理由がわかりませんでしたか? 行がバッファリングされている場合stdout
、文字を入力した後に出力されるべきではありませんか? 私は何が欠けていますか?
最初のコード:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp=stdout;
fp=fopen("myfile","w");
fprintf(fp,"%d",45);
getchar();
// return 0;
}
2 番目のコード:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp=stdout;
fprintf(fp,"%d",45);
getchar();
// return 0;
}
PS: GCC を使用しており、プラットフォームは Linux です。