Compartilhar via


_chsize

Altera o tamanho de um arquivo. Uma versão mais segura estiver disponível; consulte _chsize_s.

int _chsize( 
   int fd,
   long size 
);

Parâmetros

  • fd
    O descritor de Arquivo que faz referência a um arquivo aberto.

  • size
    Novo comprimento do arquivo em bytes.

Valor de retorno

_chsize retorna o valor 0 se o tamanho do arquivo é modificado com êxito. Um valor de retorno – 1 indica um erro: errno é definido como EACCES se o arquivo especificado é bloqueada no acesso a EBADF , se o arquivo especificado é somente leitura ou o descritor for inválido, a ENOSPC se nenhum espaço é deixado no dispositivo, ou a EINVAL se size é menor que zero.

Para obter mais informações sobre esses e outros códigos de retorno, consulte _doserrno, errno, _sys_errlist, and _sys_nerr.

Comentários

A função de _chsize estende ou trunca o arquivo associado com fd ao comprimento especificado por size. O arquivo deve estar aberto em um modo que permite gravar. Os caracteres nulos (\ “0 ") são acrescentados se o arquivo é estendido. Se o arquivo é truncado, todos os dados do final do arquivo reduzido ao tamanho original do arquivo serão perdidos.

Essa função valida seus parâmetros. Se size é menor que zero ou fd é um descritor de arquivo incorreto, o manipulador inválido do parâmetro é chamado, conforme descrito em Validação do parâmetro.

Requisitos

Rotina

Cabeçalho necessário

Cabeçalho opcional

_chsize

<io.h>

<errno.h>

Para obter mais informações sobre compatibilidade, consulte Compatibilidade na Introdução.

Exemplo

// 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 );
   }
}
  

Equivalência do .NET Framework

Consulte também

Referência

Manipulação de arquivos

_close

_sopen, _wsopen

_open, _wopen