Sdílet prostřednictvím


_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

Získá informace o otevření souboru.

int _fstat( 
   int fd,
   struct _stat *buffer 
);
int _fstat32( 
   int fd,
   struct __stat32 *buffer 
);
int _fstat64( 
   int fd,
   struct __stat64 *buffer 
);
int _fstati64( 
   int fd,
   struct _stati64 *buffer 
);
int _fstat32i64( 
   int fd,
   struct _stat32i64 *buffer 
);
int _fstat64i32( 
   int fd,
   struct _stat64i32 *buffer 
);

Parametry

  • fd
    Popisovač souboru otevřeného souboru.

  • buffer
    Ukazatel na strukturu pro uložení výsledků.

Vrácená hodnota

Vrátí hodnotu 0, pokud je získat informace o stavu souboru.Vrácená hodnota –1 označuje chybu.Pokud popisovač souboru je neplatný nebo buffer je NULL, vyvolat neplatný parametr popisovače, jak je popsáno v Ověření parametrů.Pokud je povoleno spuštění pokračovat, errno je nastavena na EBADF, z popisovač souboru je neplatná nebo na EINVAL, pokud buffer je NULL.

Poznámky

_fstat Funkce získává informace o otevření souboru spojené s fd a uloží ve struktuře odkazuje buffer._stat Struktury, které jsou definovány v SYS\Stat.h, obsahuje následující pole.

  • st_atime
    Čas posledního přístupu k souboru.

  • st_ctime
    Čas vytvoření souboru.

  • st_dev
    Pokud zařízení, fd; jinak 0.

  • st_mode
    Bitová maska, režim souboru informace._S_IFCHR Pokud je nastaven bit fd zařízení._S_IFREG Pokud je nastaven bit fd odkazuje na běžný soubor.Bity pro čtení i zápis jsou stanoveny podle režimu oprávnění souboru._S_IFCHRa jiné konstanty jsou definovány v SYS\Stat.h.

  • st_mtime
    Čas poslední změny souboru.

  • st_nlink
    Vždy 1 v systémech souborů než NTFS.

  • st_rdev
    Pokud zařízení, fd; jinak 0.

  • st_size
    Velikost souboru v bajtech.

Pokud fd zařízení, st_atime, st_ctime, st_mtime, a st_size pole nejsou smysluplné.

Protože používá Stat.h _dev_t typ, který je definován v Types.h, je nutné zahrnout Types.h před Stat.h v kódu.

_fstat64, která používá __stat64 struktury, umožňuje data vytvoření souboru vyjádřeno pomocí 23: 59: 59, do 31. prosince 3000 UTC; vzhledem k tomu, že další funkce představují pouze data prostřednictvím 03: 14: 07 19 01.01.08, UTC.Půlnoc, 1. ledna 1970 je dolní mez rozsahu data pro tyto funkce.

Variace těchto funkcí podporují 32bitové nebo 64bitové čas typy a délky 32bitová nebo 64bitová verze souboru.První číselnou příponu (32 nebo 64) označuje velikost typ času používat; druhý přípona je buď i32 nebo i64, označující zda velikost souboru je vyjádřen 32bitové nebo 64bitové celé číslo.

_fstatje ekvivalentní _fstat64i32, a struct_stat obsahuje čas 64 bit.To platí Pokud _USE_32BIT_TIME_T je definován v takovém případě staré chování je v platnosti; _fstatpoužívá 32bitové čas, a struct_stat obsahuje čas 32-bit.Totéž platí pro _fstati64.

Typ času a typu Variant délky souboru _stat

Funkce

Definice _USE_32BIT_TIME_T?

Typ času

Délka typu souboru

_fstat

Není definován

64bitová verze

32bitová verze

_fstat

Definice

32bitová verze

32bitová verze

_fstat32

Nemá vliv na definici makra

32bitová verze

32bitová verze

_fstat64

Nemá vliv na definici makra

64bitová verze

64bitová verze

_fstati64

Není definován

64bitová verze

64bitová verze

_fstati64

Definice

32bitová verze

64bitová verze

_fstat32i64

Nemá vliv na definici makra

32bitová verze

64bitová verze

_fstat64i32

Nemá vliv na definici makra

64bitová verze

32bitová verze

Požadavky

Function

Požadované záhlaví

_fstat

<sys/stat.h> a <sys/types.h>

_fstat32

<sys/stat.h> a <sys/types.h>

_fstat64

<sys/stat.h> a <sys/types.h>

_fstati64

<sys/stat.h> a <sys/types.h>

_fstat32i64

<sys/stat.h> a <sys/types.h>

_fstat64i32

<sys/stat.h> a <sys/types.h>

Další informace o kompatibilitě v tématu Compatibility v úvodu.

Příklad

// crt_fstat.c
// This program uses _fstat to report
// the size of a file named F_STAT.OUT.
 

#include <io.h>
#include <fcntl.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <share.h>

int main( void )
{
   struct _stat buf;
   int fd, result;
   char buffer[] = "A line to output";
   char timebuf[26];
   errno_t err;

   _sopen_s( &fd,
             "f_stat.out",
             _O_CREAT | _O_WRONLY | _O_TRUNC,
             _SH_DENYNO,
             _S_IREAD | _S_IWRITE );
   if( fd != -1 )
      _write( fd, buffer, strlen( buffer ) );

   // Get data associated with "fd": 
   result = _fstat( fd, &buf );

   // Check if statistics are valid: 
   if( result != 0 )
   {
      if (errno == EBADF)
        printf( "Bad file descriptor.\n" );
      else if (errno == EINVAL)
        printf( "Invalid argument to _fstat.\n" );
   }
   else
   {
      printf( "File size     : %ld\n", buf.st_size );
      err = ctime_s(timebuf, 26, &buf.st_mtime);
      if (err)
      {
         printf("Invalid argument to ctime_s.");
         exit(1);
      }
      printf( "Time modified : %s", timebuf );
   }
   _close( fd );
}
  

Ekvivalent v rozhraní .NET Framework

Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.

Viz také

Referenční dokumentace

Zpracování souborů

_access _waccess

_chmod _wchmod

_filelength _filelengthi64

_stat funkce _wstat