-
C/C++ fflush(3)C,C++ & Linux 2020. 5. 21. 10:32728x90
함수 기능
아직 파일에 쓰이지 않은 버퍼의 내용을 커널에 전달하는 함수
fflush() 를 호출해도 버퍼의 내용을 커널에 전달할 뿐 파일을 닫는 것은 아닙니다.
함수 원형
#include <stdio.h> int fflush(FILE *fp);
매개변수
fp
버퍼를 비울 파일 포인터
반환값
성공 시 0 리턴
에러 시 EOF 리턴하고 errno 설정
예제
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char *argv[]) { char buf[BUFSIZ]; // stdout 같은 터미널은 Line buffer 로 지정됨 setbuf(stdout, buf); // \n 을 만나지 않았지만 fflush 로 인해 바로 출력 printf("Hello, "); fflush(stdout); sleep(1); printf("OSLAB!!"); fflush(stdout); sleep(1); // Hello, OSLAB!!\n 한 번에 출력 printf("\n"); sleep(1); // None buffer 로 변경 // 여기서부터는 매 라인마다 바로바로 출력됨 setbuf(stdout, NULL); // How 출력 printf("How"); sleep(1); // are 출력 printf(" are"); sleep(1); // you? 출력 printf(" you?"); sleep(1); // \n 출력 printf("\n"); exit(0); }
결과
리눅스시스템프로그래밍 저자 : 홍지만
https://book.naver.com/bookdb/book_detail.nhn?bid=14623672
책에 기술된 예제 프로그램입니다. 책 내부에는 훨씬 더 많은 자료가 있습니다. (개인적으로 좋았습니다.)'C,C++ & Linux' 카테고리의 다른 글
C/C++ ferror(3) feof(3) clearerr(3) (0) 2020.05.21 C/C++ getc(3) fgetc(3) getchar(3) (0) 2020.05.21 C/C++ setbuf(3) setvbuf(3) (0) 2020.05.21 C/C++ fclose(3) fcloseall(3) (0) 2020.05.21 C/C++ fopen(3) freopen(3) fdopen(3) (0) 2020.05.21