다음을 통해 공유


_chsize

파일 크기를 수정합니다. 보다 안전한 버전을 이용하기 위해; _chsize_s을 참고하세요.

int _chsize( 
   int fd,
   long size 
);

매개 변수

  • fd
    열려 있는 파일을 나타내는 파일 설명자입니다.

  • size
    새 파일의 길이(바이트)입니다.

반환 값

만일 파일의 크기가 성공적으로 변경되면, _chsize 은 0을 반환합니다. 오류는 -1의 반환값을 나타냅니다; 지정된 파일이 접근에 대하여 허가되지 않은 경우, errno 는 EACCES 로, 지정된 파일이 읽기전용이거나 설명자가 잘못된 경우 EBADF 로, 장치에 공간이 없는 경우 ENOSPC size 가 0보다 작은 경우 EINVAL로 설정됩니다.

이러한 반환 코드와 다른 반환코드에 대한 자세한 정보는 _doserrno, errno, _sys_errlist, and _sys_nerr 를 참조하십시오.

설명

_chsize 함수는 size 로 지정된 길이로 fd 를 사용하여 파일을 자르거나 확장합니다. 파일은 쓰기를 허용 하는 모드에서 열려 있어야 합니다. 파일이 확장되는 경우, null 문자('\0')이 추가됩니다. 파일이 잘린경우, 파일의 본래 길이로 단축된 파일의 끝으로부터 모든 데이터가 손실됩니다.

이 함수는 해당 매개 변수의 유효성을 검사합니다. 만일 size 0보다 더 작거나 fd 이 잘못된 파일 설명자인 경우, 매개 변수 유효성 검사 에서처럼 잘못된 매개변수 처리기가 호출됩니다.

요구 사항

루틴

필수 헤더

선택적 헤더

_chsize

<io.h>

<<errno.h>>

호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.

예제

// crt_chsize.c
// This program uses _filelength to report the size
// of a file before and after modifying it with _chsize.

#include <io.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <share.h>

int main( void )
{
   int fh, result;
   unsigned int nbytes = BUFSIZ;

   // Open a file 
   if( _sopen_s( &fh, "data", _O_RDWR | _O_CREAT, _SH_DENYNO,
                 _S_IREAD | _S_IWRITE ) == 0 )
   {
      printf( "File length before: %ld\n", _filelength( fh ) );
      if( ( result = _chsize( fh, 329678 ) ) == 0 )
         printf( "Size successfully changed\n" );
      else
         printf( "Problem in changing the size\n" );
      printf( "File length after:  %ld\n", _filelength( fh ) );
      _close( fh );
   }
}
  

해당 .NET Framework 항목

참고 항목

참조

파일 처리

_close

_sopen, _wsopen

_open, _wopen