다음을 통해 공유


fclose, _fcloseall

스트림을 닫거나(fclose) 모든 열린 스트림을 닫습니다(_fcloseall).

구문

int fclose(
   FILE *stream
);
int _fcloseall( void );

매개 변수

stream
FILE 구조체에 대한 포인터입니다.

반환 값

스트림이 성공적으로 닫히면 fclose는 0을 반환합니다. _fcloseall은 닫힌 총 스트림 수를 반환합니다. 두 함수 모두 EOF를 반환하여 오류를 표시합니다.

설명

fclose 함수는 stream을 닫습니다. 검사점 생성 시 streamNULL인 경우 Parameter Validation를 참조하세요. 계속해서 실행하도록 허용된 경우 fcloseerrnoEINVAL로 설정하고 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