첫 번째 코드를 실행하고 Ctrl-c를 누르면 즉시 45
이 파일에 기록됩니다. 하지만 두 번째 코드를 실행하면 45
이됩니다.c에서 stdout의 버퍼링 동작
아래의 코드에서이 문제가 발생하는 이유는 무엇입니까? 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를 사용하고 있는데 플랫폼이 리눅스이다.
반드시 그렇지는 않습니다. '45'는 인쇄되거나 인쇄되지 않을 수 있습니다. 친절하게 내 대답을 참조하십시오. –