_chsize
Changes the size of a file. Un version plus sûr de _chsize_s est disponible ; consultez .
int _chsize(
int fd,
long size
);
Paramètres
fd
Descripteurs de fichier faisant référence au fichier ouvert.size
Longueur du fichier en octets.
Valeur de retour
_chsize retourne la valeur 0 si la taille du fichier a été modifiée. Une valeur de retour de – 1 indique une erreur : errno a la valeur EACCES si le fichier spécifié est verrouillé contre tout accès, à EBADF si le fichier spécifié est en lecture seule ou si l'un descripteur est invalide, à ENOSPC si aucun espace ne reste sur le périphérique, ou à EINVAL si size est inférieure à zéro.
Consultez _doserrno, errno, _sys_errlist et _sys_nerr pour plus d'informations sur ces éléments et autres codes de retour.
Notes
La fonction _chsize étend ou tronque le fichier associé à fd à la longueur spécifiée par size. Le fichier doit être ouvert dans un mode qui permet d'écrire. Les caractères Null ("\0 ") sont ajoutés si le fichier est étendu. Si le fichier est tronqué, toutes les données de la fin du fichier original raccourci sont perdues.
Cette fonction valide ses paramètres. Si size est inférieure à zéro ou quefd est un mauvais descripteur de fichier, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre.
Configuration requise
Routine |
En-tête requis |
En-tête facultatif |
---|---|---|
_chsize |
<io.h,> |
<errno.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.
Exemple
// 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 );
}
}