Partager via


_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 );
   }
}
  

Équivalent .NET Framework

Voir aussi

Référence

Gestion de fichiers

_close

_sopen, _wsopen

_open, _wopen