_chsize
Altera o tamanho de um arquivo. Uma versão mais segura está disponível; veja _chsize_s
.
Sintaxe
int _chsize(
int fd,
long size
);
Parâmetros
fd
Descritor de arquivo que faz referência a um arquivo aberto.
size
Novo tamanho do arquivo em bytes.
Retornar valor
_chsize
retornará o valor 0 se o tamanho do arquivo for alterado com sucesso. Um valor de retorno de -1 indica um erro: errno
é definido como EACCES
se o arquivo especificado é somente leitura ou o arquivo especificado está bloqueado contra acesso, para EBADF
se o descritor é inválido, ENOSPC
se não há espaço no dispositivo ou EINVAL
se size
é menor que zero.
Para obter mais informações sobre códigos de retorno, confira errno
, _doserrno
, _sys_errlist
e _sys_nerr
.
Comentários
A função _chsize
estende ou trunca o arquivo associado a fd
para o comprimento especificado por size
. O arquivo deve ser aberto em um modo que permita gravação. Caracteres nulos ('\0') que serão acrescentados se o arquivo for estendido. Se o arquivo for truncado, todos os dados do final do arquivo reduzido para o tamanho original do arquivo serão perdidos.
Essa função valida seus parâmetros. Se size
for menor que zero ou fd
for um descritor de arquivo incorreto, o manipulador de parâmetros inválido será chamado, conforme descrito em Validação de parâmetro.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Requisitos
Rotina | Cabeçalho necessário | Cabeçalho opcional |
---|---|---|
_chsize |
<io.h> | <errno.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
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
Confira também
Manipulação de arquivos
_close
_sopen
, _wsopen
_open
, _wopen
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de