_chsize

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Modifie la taille d’un fichier. Une version plus sécurisée est disponible ; consultez la page _chsize_s.

int _chsize(   
   int fd,  
   long size   
);  

Paramètres

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

size
Nouvelle longueur du fichier en octets.

_chsizeRetourne la valeur 0 si la taille du fichier a été correctement modifiée. Une valeur de retour de -1 indique une erreur : errno a EACCES si le fichier spécifié est verrouillé contre tout accès, à EBADF si le fichier spécifié est en lecture seule ou si le descripteur n’est pas valide, ENOSPC si plus d’espace disponible sur le périphérique, ou EINVAL si size est inférieur à zéro.

Consultez la page _doserrno, errno, _sys_errlist et _sys_nerr pour plus d’informations sur les autres codes de retour.

Le _chsize fonction étend ou tronque le fichier associé fd à la longueur spécifiée par size. Le fichier doit être ouvert dans un mode qui permet l’écriture. Les caractères null ('\0') sont ajoutées si le fichier est étendu. Si le fichier est tronqué, toutes les données à partir de la fin du fichier raccourcie à la longueur du fichier d’origine sont perdues.

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

RoutineEn-tête requisEn-tête facultatif
_chsize<io.h><errno.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility dans l’introduction.

// 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  

Gestion de fichiers
_close
_sopen, _wsopen
_open, _wopen

Afficher: