Freigeben über


_chsize

Ändert die Größe einer Datei.Eine sicherere Version verfügbar ist. Weitere Informationen finden Sie unter _chsize_s.

int _chsize( 
   int fd,
   long size 
);

Parameter

  • fd
    Dateideskriptor, der eine offene Datei verweist.

  • size
    Die neue Länge der Datei in Byte.

Rückgabewert

_chsize gibt den Wert 0 zurück, wenn die Dateigröße erfolgreich geändert wurde.Ein Wert von 1 gibt einen Fehler an: errno wird auf EACCES , wenn die angegebene Datei für den Zugriff gesperrt ist, EBADF , wenn die angegebene Datei schreibgeschützt ist oder der Deskriptor ungültig ist, ENOSPC , wenn kein Speicherplatz auf dem Gerät gelassen wird, oder EINVAL festgelegt, wenn size kleiner als null ist.

Weitere Informationen finden Sie unter _doserrno, errno, _sys_errlist und _sys_nerr Weitere Informationen über diese und andere Rückgabecodes.

Hinweise

Die _chsize-Funktion erweitert oder schneidet die Datei ab, die fd auf die Länge zugeordnet ist, die von sizeangegeben wird.Die Datei muss in einem Modus geöffnet werden kann, der geschrieben werden soll.NULL-Zeichen („\ 0") werden angefügt, wenn die Datei erweitert wird.Wenn die Datei abgeschnitten wird, ist alle Daten aus dem Ende der verkürzten Datei zur ursprünglichen Länge der Datei verloren.

Diese Funktion überprüft seine Parameter.Wenn sizefd oder kleiner ist ein ungültiger Dateideskriptor als null ist, wird der Ereignishandler aufgerufen, z. B. ungültige Parameter in Parametervalidierungbeschrieben.

Anforderungen

Routine

Erforderlicher Header

Optionaler Header

_chsize

<io.h>

<errno.h>

Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.

Beispiel

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

.NET Framework-Entsprechung

Siehe auch

Referenz

Datei-Behandlung

_close

_sopen, _wsopen

_open, _wopen