개념 :
1. 파일 버퍼를 일정 크기 만큼 채우지 않고 비운다.
2. 표준 입- 출력 (stdin, stdout) 버퍼를 비운다.
사용 이유 :
데이터는 파일에 저장되기 전 임시 버퍼에 기록이 됩니다. 갑작스럽게 전원이 차단되면 임시 버퍼의 내용이 기록 되지 않습니다. 하지만 fflush를 호출
하여 버퍼를 즉시 비우고 바로 내용을 기록할 수 있습니다. 예를 들어 메모장에 텍스트를 입력하고 저장하지 않고 강제 종료를 하게 된다면 기록되지
않는 것과도 같습니다.
소스 코드 : main.c
#include <stdio.h>
void main(void)
{
FILE *write = 0, *read = 0;
char szBuffer[256] = { 0, };
fopen_s(&write, "E:\\300\\109\\file.txt", "w+" );
if (write == NULL)
{
puts("fail : create file");
}
else
{
fputs("write text \n", write);
puts("success : write file");
puts("call fflush");
fflush(write);// 즉시 "write text" 기록한다.
fclose(write);
fopen_s(&read, "E:\\300\\109\\file.txt", "r");
if (read == 0)
{
puts("fail : read file");
}
else
{
puts("success : read file");
fgets(szBuffer, 256, read);
puts(szBuffer);
fgets(szBuffer, 256, read);
printf("%s", szBuffer);
fclose(read);
}
}
}
결과
#c언어입문,#c언어,#파일버퍼비우기,#fflush,#임시저장구현
'Programing - C > C Basic grammar ' 카테고리의 다른 글
111 파일 포인터를 처음으로 이동(rewind) (0) | 2017.08.11 |
---|---|
110 파일 포인터의 현재 위치(ftell) (0) | 2017.08.11 |
108 파일에 형식화된 문자열 쓰고 읽기( fprintf_s, fscanf_s) (0) | 2017.08.10 |
107 문자열을 기록하고 읽어들이자.(fputs, fgets) (0) | 2017.08.10 |
106 파일에 한문자씩 쓰고 읽기(fputc, fgetc) (0) | 2017.08.10 |