_chsize
Altera o dimensionar de um arquivo.Uma versão mais segura disponível; consulte _chsize_s.
int _chsize(
int fd,
long size
);
Parâmetros
fd
Descritor de arquivo se referindo a um arquivo em aberto.size
Novo tamanho do arquivo em bytes.
Valor de retorno
_chsize Retorna o valor 0 se o dimensionar do arquivo for alterado com êxito. Um valor retornado de – 1 indica um erro: errno é conjunto para EACCES Se o arquivo especificado estiver protegido contra acesso, para EBADF Se o arquivo especificado é somente leitura ou o descritor for inválido, ENOSPC Se ficar sem espaço no dispositivo, ou EINVAL Se size é menor que zero.
See _doserrno, errno, _sys_errlist e _sys_nerr para obter mais informações sobre esses e outros códigos retorno.
Comentários
The _chsize função estende ou trunca o arquivo associado fd o comprimento especificado pela size. O arquivo deve estar em aberto em um modo que permite gravação.Caracteres nulo ('\0') são acrescentados se o arquivo será estendido.Se o arquivo é truncado, todos os dados do participante de arquivo reduzido para o comprimento original do arquivo serão perdidos.
Esta função valida os parâmetros.If size é menor que zero ou fd é um descritor de arquivo inválido, o manipulador de parâmetro inválido é chamado, conforme descrito em Validação de parâmetro.
Requisitos
Rotina |
Cabeçalho necessário |
Cabeçalho opcional |
---|---|---|
_chsize |
<io.h> |
<errno.h> |
Para obter mais informações de 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 );
}
}
File length before: 0 Size successfully changed File length after: 329678