_chsize
La modifica della dimensione di un file.Una versione più sicura è disponibile; vedere _chsize_s.
int _chsize(
int fd,
long size
);
Parametri
fd
Descrittore del file che fa riferimento a un file aperto.size
Nuova lunghezza in byte del file.
Valore restituito
_chsize restituisce il valore 0 se le dimensioni del file correttamente vengono modificate.Restituito un valore pari a 1 indica un errore: errno è impostato su EACCES se il file specificato non può essere accesso, a EBADF se il file specificato è di sola lettura o il descrittore non è valido, ENOSPC se nessuno spazio viene lasciato nel dispositivo, o EINVAL se size è minore di zero.
vedere _doserrno, errno, _sys_errlist e _sys_nerr per ulteriori informazioni su questi e su altri, codici restituiti.
Note
_chsize la funzione estende o tronca il file associato fd alla lunghezza specificata da size.Il file deve essere aperto in una modalità che consente di scrivere.I caratteri null (" \ 0 ") vengono aggiunti se il file viene distribuito.Se il file viene troncato, tutti i dati dalla fine del file abbreviato alla lunghezza originale del file verranno persi.
Questa funzione convalida dei parametri.se size è minore di zero o fd è un errato descrittore di file, il gestore non valido di parametro viene richiamato, come descritto in Convalida dei parametri.
Requisiti
routine |
Intestazione di associazione |
intestazione facoltativa |
---|---|---|
_chsize |
<io.h> |
<errno.h> |
Per ulteriori informazioni sulla compatibilità, vedere compatibilità nell'introduzione.
Esempio
// 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 );
}
}