_chsize

Изменяет размер файла.Более безопасной версией доступен; см. _chsize_s.

int _chsize( 
   int fd,
   long size 
);

Параметры

  • fd
    Идентификатор файла, относящийся к открытому файлу.

  • size
    Новая длина файла в байтах.

Возвращаемое значение

_chsize возвращает значение 0, если размер файла успешно изменен.Возвращаемое значение - 1 означает ошибку: errno равно EACCES если указанный файл блокированн для доступа к EBADF если указанный файл только для чтения, то дескриптор недопустим, ENOSPC если пространство не остается на устройстве или EINVAL If size меньше нуля.

См. _doserrno, errno, _sys_errlist и _sys_nerr дополнительные сведения об этих и других, кодов возврата.

Заметки

_chsize функция расширяет или усекает файл, связанный с fd до длины, определенной by size.Файл должен быть открыт в режиме, который позволяет записать.Нуль-символы (" \ 0 "), добавляются если файл расширен.Если файл усечен, то теряются все данные из конца файла на исходную сокращенного длину файла.

Эта функция проверяет его параметры.If size меньше нуля или 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