_chsize

modifie la taille d'un fichier.un plus version sécurisée est disponible ; consultez _chsize_s.

int _chsize( 
   int fd,
   long size 
);

Paramètres

  • fd
    Descripteur de fichier référence à un fichier ouvert.

  • size
    nouvelle longueur du fichier en octets.

Valeur de retour

_chsize retourne la valeur 0 si la taille du fichier est correctement modifiée.Une valeur de retour - 1 indique une erreur : errno est défini à EACCES si le fichier spécifié est verrouillé contre l'accès, à EBADF si le fichier spécifié est en lecture seule ou le descripteur est valide, à ENOSPC si aucun espace n'est autorisé sur le périphérique, ou à EINVAL si size est inférieur à zéro.

Consultez _doserrno, errno, _sys_errlist, et _sys_nerr pour plus d'informations sur ce point, ainsi que d'autres, les codes de retour.

Notes

La fonction d' _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 de le fichier raccourci vers la longueur d'origine du fichier est perdue.

cette fonction valide ses paramètres.Si size est inférieur à zéro ou fd est un mauvais descripteur de fichier, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.

Configuration requise

routine

en-tête requis

en-tête facultatif

_chsize

<io.h>

<errno.h>

Pour plus d'informations de 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 );
   }
}
  

Équivalent .NET Framework

Voir aussi

Référence

Gestion de fichiers

_close

_sopen, _wsopen

_open, _wopen