Udostępnij za pośrednictwem


_chsize

Zmienia rozmiar pliku.Bardziej bezpieczna wersja jest dostępna; see _chsize_s.

int _chsize( 
   int fd,
   long size 
);

Parametry

  • fd
    Plik deskryptora odnoszące się do otwartego pliku.

  • size
    Długość nowego pliku w bajtach.

Wartość zwracana

_chsizeZwraca wartość 0, jeśli rozmiar pliku jest pomyślnie zmienione.Zwracana wartość –1 wskazuje na błąd: errno jest ustawiona na EACCES Jeśli określony plik jest zablokowany przed dostępem, do EBADF , jeśli określony plik jest tylko do odczytu lub deskryptora jest nieprawidłowy, ENOSPC , jeżeli nie miejsca na urządzeniu, lub EINVAL Jeśli size jest mniejszy od zera.

Zobacz _doserrno, errno, _sys_errlist i _sys_nerr uzyskać więcej informacji o tych i innych, kody zwracane.

Uwagi

_chsize Funkcja rozszerza lub obcina plik skojarzony z fd do długości określonej przez size.Plik musi być otwarta w trybie, który zezwala na piśmie.Znakami null (\0) są dołączane, jeśli plik jest rozszerzany.Jeśli plik jest obcięty, wszystkie dane z końca pliku skrócone do długości oryginalnego pliku zostaną utracone.

Funkcja ta sprawdza poprawność jego parametry.Jeśli size jest mniejszy od zera lub fd jest zły plik deskryptora, wywoływana jest funkcja obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

Opcjonalne nagłówka

_chsize

<io.h>

<errno.h>

Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.

Przykład

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

Odpowiednik w programie .NET Framework

Zobacz też

Informacje

Obsługa plików

_close

_sopen, _wsopen

_open, _wopen