fclose
, _fcloseall
스트림을 닫거나(fclose
) 모든 열린 스트림을 닫습니다(_fcloseall
).
구문
int fclose(
FILE *stream
);
int _fcloseall( void );
매개 변수
stream
FILE
구조체에 대한 포인터입니다.
반환 값
스트림이 성공적으로 닫히면 fclose
는 0을 반환합니다. _fcloseall
은 닫힌 총 스트림 수를 반환합니다. 두 함수 모두 EOF
를 반환하여 오류를 표시합니다.
설명
fclose
함수는 stream
을 닫습니다. 검사점 생성 시 stream
가 NULL
인 경우 Parameter Validation를 참조하세요. 계속해서 실행하도록 허용된 경우 fclose
는 errno
를 EINVAL
로 설정하고 EOF
를 반환합니다. 이 함수를 호출하기 전에 항상 포인터를 stream
확인하는 것이 좋습니다.
반환 코드에 대한 자세한 내용은 , , 및 를 참조하세요errno
._sys_nerr
_sys_errlist
_doserrno
_fcloseall
함수는 stdin
, stdout
, stderr
(MS-DOS의 경우 _stdaux
및 _stdprn
)을 제외하고 모든 열린 스트림을 닫습니다. 또한 tmpfile
을 통해 만들어진 모든 임시 파일을 닫고 삭제합니다. 두 함수에서 모두 스트림과 연결된 모든 버퍼가 플러시된 후 닫힙니다. 시스템 할당 버퍼는 스트림이 닫힐 때 해제됩니다. 사용자가 할당한 버퍼 및 setbuf
setvbuf
자동으로 해제되지 않습니다.
참고 항목
스트림을 닫는 데 함수를 _fcloseall
사용하는 경우 fclose
기본 파일 설명자 및 OS 파일 핸들(또는 소켓)도 닫힙니다. 따라서 파일이 원래 파일 핸들 또는 파일 설명자로 열렸고 닫힌 fclose
경우 파일 설명자를 닫기 위해 호출 _close
하지 말고 Win32 함수 CloseHandle
를 호출하여 파일 핸들을 닫지 마세요.
fclose
및 _fcloseall
에는 다른 스레드의 간섭을 방지하기 위한 코드가 포함됩니다. fclose
의 잠기지 않은 버전은 _fclose_nolock
를 참조하세요.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
요구 사항
함수 | 필수 헤더 |
---|---|
fclose |
<stdio.h> |
_fcloseall |
<stdio.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
fopen
에 대한 예를 참조하세요.
참고 항목
스트림 I/O
_close
_fdopen
, _wfdopen
fflush
fopen
, _wfopen
freopen
, _wfreopen