SetEndOfFile 함수(fileapi.h)

지정된 파일의 실제 파일 크기를 파일 포인터의 현재 위치로 설정합니다.

실제 파일 크기를 파일의 끝이라고도 합니다. SetEndOfFile 함수를 사용하여 파일을 자르거나 확장할 수 있습니다. 파일의 논리적 끝을 설정하려면 SetFileValidData 함수를 사용합니다.

구문

BOOL SetEndOfFile(
  [in] HANDLE hFile
);

매개 변수

[in] hFile

확장 또는 잘리는 파일에 대한 핸들입니다.

GENERIC_WRITE 액세스 권한 으로 파일 핸들을 만들어야 합니다. 자세한 내용은 파일 보안 및 액세스 권한을 참조하세요.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

SetEndOfFile 함수를 사용하여 파일을 자르거나 확장할 수 있습니다. 파일이 확장되면 파일의 이전 끝과 파일의 새 끝 사이의 파일 내용이 정의되지 않습니다.

각 파일 스트림에는 다음이 있습니다.

  • 파일 크기: 파일의 데이터 크기에서 바이트까지의 크기입니다.
  • 할당 크기: 디스크의 파일에 할당되는 공간의 크기이며, 이는 항상 클러스터 크기의 짝수 배수입니다.
  • 유효한 데이터 길이: 실제로 기록된 파일의 데이터 길이를 바이트에 지정합니다. 이 값은 항상 파일 크기보다 작거나 같습니다.
SetEndOfFile 함수는 파일 크기를 설정합니다. SetFileValidData를 사용하여 유효한 데이터 길이를 설정합니다.

조건
CreateFileMappinghFile에 대한 파일 매핑 개체를 만들기 위해 호출됩니다. SetEndOfFile을 호출하려면 먼저 UnmapViewOfFile을 호출하여 모든 뷰의 매핑을 해제하고 CloseHandle을 호출하여 파일 매핑 개체를 닫아야 합니다.

거래된 작업

핸들에 바인딩된 트랜잭션이 있는 경우 파일 끝 위치의 변경 내용이 트랜잭션됩니다.

Windows 8 및 Windows Server 2012에서 이 함수는 다음 기술을 통해 지원됩니다.

기술 지원 여부
SMB(서버 메시지 블록) 3.0 프로토콜 Yes
SMB 3.0 TFO(투명 장애 조치(failover)) Yes
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 Yes
CsvFS(클러스터 공유 볼륨 파일 시스템) Yes
ReFS(Resilient File System) Yes

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 fileapi.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

CloseHandle

CreateFile

CreateFileMapping

파일 관리 함수

SetFileInformationByHandle

SetFileValidData

UnmapViewOfFile