Freigeben über


_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

Ruft Informationen über eine offene Datei ab.

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

Parameter

  • fd
    Dateideskriptor Datei öffnen.

  • buffer
    Zeiger auf die Struktur, deren Gesamtmenge von Ergebnissen zu speichern.

Rückgabewert

Gibt 0 zurück, wenn die FILE STATUS-Informationen abgerufen werden.Ein Rückgabewert von 1 gibt einen Fehler an.Wenn der Dateideskriptor ungültig ist oder bufferNULLungültige Parameter ist, wird der Ereignishandler aufgerufen, wie in Parametervalidierungbeschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, wird errno zu EBADF, im Falle eines ungültigen Dateideskriptors oder EINVALfestgelegt, wenn bufferNULList.

Hinweise

Die _fstat-Funktion ruft Informationen über die Datei geöffnet, die mit fd zugeordnet ist, und speichert es in der Struktur, auf die durch bufferdargestellt wird.Die _stat Struktur, definiert in Stat.h \ SYS enthält die folgenden Felder.

  • st_atime
    Zeitpunkt des letzten Dateizugriff.

  • st_ctime
    Zeitpunkt der Erstellung der Datei.

  • st_dev
    Wenn ein Gerät, fd. andernfalls 0.

  • st_mode
    Bitmaske zu Dateimodus Informationen.Das _S_IFCHR Bit wird festgelegt, wenn fd ein Gerät verweist.Das _S_IFREG Bit wird festgelegt, wenn fd eine normale Datei verweist.Die Bits mit Lese-/Schreibzugriff Berechtigungen werden nach dem Modus der Datei festgelegt._S_IFCHR und andere Konstanten sind in SYS \ Stat.h definiert.

  • st_mtime
    Zeitpunkt der letzten Änderung der Datei.

  • st_nlink
    Immer 1 in Dateisystemen Nicht NTFS.

  • st_rdev
    Wenn ein Gerät, fd. andernfalls 0.

  • st_size
    Größe der Datei in Byte.

Wenn fd eine Einheit verwiesen wird, sind st_atime, st_ctime, st_mtimeund st_size Felder nicht von Bedeutung.

Da Stat.h den _dev_t-Typ verwendet, der in Types.h definiert wurde, müssen Sie vor Types.h Stat.h im Code enthalten.

_fstat64, die die __stat64 Struktur verwendet, bietet und 23:59 oben ausgedrückt werden: Datumsangaben Build FILE59 3000 am 31. Dezember, UTC. während andere Funktionen nur Datumsangaben nach 03:14 Uhr darstellen: Am 7. Januar 19 2038, UTC.Mitternacht am 1. Januar 1970 ist die Untergrenze des Datumsbereichs für alle diese Features.

Variationen dieser Funktion stütz32-bit- oder 64 bit-Zeit Typen und 32-Bit- oder 64-Bit-Datei der Dimension.Im ersten numerischen Suffix (32 oder 64) gibt die Größe des Typs Zeit verwenden. Suffix das zweite i64oder i32 ist, und gibt an, ob die Dateigröße als 32-Bit- oder 64-Bit-ganze Zahl dargestellt wird.

_fstat ist mit _fstat64i32, und struct_stat enthält eine 64-Bit-Zeit.Dies gilt, es sei denn, _USE_32BIT_TIME_T definiert ist, in diesem Fall das alte Verhalten wirksam ist. _fstat verwendet eine 32-Bit-Zeit, und struct_stat enthält eine 32-Bit-Zeit.Dies gilt auch für _fstati64true.

Legen Sie die Uhrzeit fest _stat von Datei-Längen-Typ-Variationen Typ-und

Funktionen

_USE_32BIT_TIME_T definiert?

Typ der Uhrzeit

Typ der Dimension Datei

_fstat

Nicht definiert

64 Bit

32-Bit

_fstat

Definiert

32-Bit

32-Bit

_fstat32

Keine Auswirkung von der Makrodefinition

32-Bit

32-Bit

_fstat64

Keine Auswirkung von der Makrodefinition

64 Bit

64 Bit

_fstati64

Nicht definiert

64 Bit

64 Bit

_fstati64

Definiert

32-Bit

64 Bit

_fstat32i64

Keine Auswirkung von der Makrodefinition

32-Bit

64 Bit

_fstat64i32

Keine Auswirkung von der Makrodefinition

64 Bit

32-Bit

Anforderungen

Funktion

Erforderlicher Header

_fstat

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

_fstat32

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

_fstat64

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

_fstati64

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

_fstat32i64

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

_fstat64i32

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

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

Beispiel

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

.NET Framework-Entsprechung

Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

Siehe auch

Referenz

Datei-Behandlung

_access, _waccess

_chmod, _wchmod

_filelength, _filelengthi64

_stat, _wstat Funktionen