다음을 통해 공유


_chsize

파일의 크기를 변경 합니다.더 안전한 버전을 사용할 수 있습니다. see _chsize_s.

int _chsize( 
   int fd,
   long size 
);

매개 변수

  • fd
    파일 설명자를 열린 파일을 참조 합니다.

  • size
    바이트 단위의 파일의 새 길이입니다.

반환 값

_chsize파일 크기를 성공적으로 변경 되는 경우 값 0을 반환 합니다.오류가 반환 값이-1로 나타냅니다: errno 설정 되어 EACCES 에 지정 된 파일에 대 한 액세스를 잠겨 있으면 EBADF 설명자가 유효 하지 않은 경우 지정 된 파일은 읽기 전용입니다 ENOSPC 장치에 공간이 없는 경우 또는 EINVAL 경우 size 0 미만입니다.

참조 하십시오 _doserrno, errno, _sys_errlist, 및 _sys_nerr 에서이 및 기타 자세한 내용은 반환 코드입니다.

설명

_chsize 함수 확장 또는 관련 된 파일 fd 에서 지정한 길이에 size.파일 쓰기 허용 모드로 열려 있어야 합니다.파일을 확장 하는 경우 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