Sdílet prostřednictvím


_chsize

Změní velikost souboru. K dispozici je bezpečnější verze; viz ._chsize_s

Syntaxe

int _chsize(
   int fd,
   long size
);

Parametry

fd
Popisovač souboru odkazující na otevřený soubor.

size
Nová délka souboru v bajtech

Vrácená hodnota

_chsize vrátí hodnotu 0, pokud je velikost souboru úspěšně změněna. Návratová hodnota -1 značí chybu: errno je nastavena EACCES , pokud je zadaný soubor jen pro čtení nebo je zadaný soubor uzamčen proti přístupu, pokud EBADF je popisovač neplatný, ENOSPC pokud není v zařízení ponecháno žádné místo nebo EINVAL pokud size je menší než nula.

Další informace o návratových kódech naleznete v tématu errno, _doserrno, _sys_errlista _sys_nerr.

Poznámky

Funkce _chsize rozšiřuje nebo zkracuje soubor přidružený fd k délce určené .size Soubor musí být otevřený v režimu, který umožňuje zápis. Pokud je soubor rozšířený, připojují se znaky null (\0). Pokud je soubor zkrácený, všechna data z konce zkráceného souboru na původní délku souboru se ztratí.

Tato funkce ověří své parametry. Pokud size je menší než nula nebo fd je chybný popisovač souboru, vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Požadavky

Rutina Požadovaný hlavičkový soubor Volitelné záhlaví
_chsize <io.h> <errno.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

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

Viz také

Zpracování souborů
_close
_sopen, _wsopen
_open, _wopen