_stat, _wstat Funktionen

Rufen Sie Statusinformationen zu einer Datei ab.

int _stat(
   const char *path,
   struct _stat *buffer 
);
int _stat32(
   const char *path,
   struct __stat32 *buffer 
);
int _stat64(
   const char *path,
   struct __stat64 *buffer 
);
int _stati64(
   const char *path,
   struct _stati64 *buffer 
);
int _stat32i64(str
   const char *path,
   struct _stat32i64 *buffer 
);
int _stat64i32(str
   const char *path,
   struct _stat64i32 *buffer 
);
int _wstat(
   const wchar_t *path,
   struct _stat *buffer 
);
int _wstat32(
   const wchar_t *path,
   struct __stat32 *buffer 
);
int _wstat64(
   const wchar_t *path,
   struct __stat64 *buffer 
);
int _wstati64(
   const wchar_t *path,
   struct _stati64 *buffer 
);
int _wstat32i64(
   const wchar_t *path,
   struct _stat32i64 *buffer 
);
int _wstat64i32(
   const wchar_t *path,
   struct _stat64i32 *buffer 
);

Parameter

  • path
    Zeiger auf eine Zeichenfolge, die den Pfad der vorhandenen Datei oder des Verzeichnisses enthält.

  • buffer
    Zeiger auf eine Struktur, die Ergebnisse speichert.

Rückgabewert

Jede dieser Funktionen gibt 0 zurück, wenn die FILE STATUS-Informationen abgerufen werden.Ein Rückgabewert von 1 einen Fehler angibt. In diesem Fall errno zu ENOENTfestgelegt wird und angibt, dass der Dateiname oder Pfad nicht gefunden werden konnte.Der Rückgabewert EINVAL ist ein ungültiger Parameter angegeben. errno wird auch in diesem Fall EINVAL festgelegt.

HinweisHinweis

Wenn path den Speicherort eines Verzeichnisses enthält, kann es sich um einen nachgestellten umgekehrten Schrägstrich enthalten.Wenn ja, wird -1 zurückgegeben und errno wird auf ENOENTfestgelegt.

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

Der Datumstempel für eine Datei dargestellt werden kann, wenn er später als Mitternacht, am 1. Januar 1970 und vor 23:59 ist: 59, 3000 am 31. Dezember UTC, es sei denn, Sie _stat32 oder _wstat32verwenden, oder _USE_32BIT_TIME_Tdefiniert, in diesem Fall das Datum nur bis 03:14 dargestellt werden kann: Am 7. Januar 19 2038, UTC.

Hinweise

Die _stat-Funktion ruft Informationen über die Datei oder das Verzeichnis path , die durch angegeben ist, und speichert es in der Struktur, auf die durch bufferdargestellt wird.Mehrbyte-Zeichenfolgen-Argumente und bei Bedarf automatisch behandelt_stat derzeit verwendeten erkennt Mehrbytezeichen sequenzen entsprechend der Mehrbyte-Codepage.

_wstat ist eine Breitzeichen-Version von _stat. path das Argument zu _wstat ist eine Zeichenfolge mit Breitzeichen._wstat und _stat verhalten sich identisch, mit der Ausnahme, dass nicht behandelte _wstat Mehrbyte-Zeichenfolgen.

Variationen dieser Funktionen unterstützen 32 oder 64-Bit-Zeit Typen und 32 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.

_stat ist mit _stat64i32, 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. _stat verwendet eine 32-Bit-Zeit, und struct_stat enthält eine 32-Bit-Zeit.Dies gilt auch für _stati64true.

HinweisHinweis

_wstat funktioniert nicht mit symbolischen Links Windows Vista .In diesen Fällen gemeldet _wstat immer eine Dateigröße von 0._stat ordnungsgemäß arbeitet mit symbolischen Links.

Diese Funktion überprüft seine Parameter.Wenn entweder path oder bufferNULLungültige Parameter ist, wird der Ereignishandler aufgerufen, wie in Parametervalidierungbeschrieben.

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

_stat, _wstat

Nicht definiert

64 Bit

32-Bit

_stat, _wstat

Definiert

32-Bit

32-Bit

_stat32, _wstat32

Keine Auswirkung von der Makrodefinition

32-Bit

32-Bit

_stat64, _wstat64

Keine Auswirkung von der Makrodefinition

64 Bit

64 Bit

_stati64, _wstati64

Nicht definiert

64 Bit

64 Bit

_stati64, _wstati64

Definiert

32-Bit

64 Bit

_stat32i64, _wstat32i64

Keine Auswirkung von der Makrodefinition

32-Bit

64 Bit

_stat64i32, _wstat64i32

Keine Auswirkung von der Makrodefinition

64 Bit

32-Bit

Zuweisung generischer Textroutinen

TCHAR.H-Routine

_UNICODE & _MBCS nicht definiert

_MBCS definieren

_UNICODE definiert

_tstat

_stat

_stat

_wstat

_tstat64

_stat64

_stat64

_wstat64

_tstati64

_stati64

_stati64

_wstati64

_tstat32i64

_stat32i64

_stat32i64

_wstat32i64

_tstat64i32

_stat64i32

_stat64i32

_wstat64i32

Die _stat Struktur definiert in SYS \ STAT.H enthält die folgenden Felder.

  • st_gid
    Numerischer Bezeichner der Gruppe, die die Datei (UNIX-Besonderen) ist, besitzt dieses Feld immer im Fenster systemen Null.Eine Datei umgeleitete wird z. B. eine Windows-Datei klassifiziert.

  • st_atime
    Zeitpunkt des letzten Zugriffs der Datei.Gültig mit NTFS formatierte FAT jedoch nicht auf dem Laufwerk.

  • st_ctime
    Zeitpunkt der Erstellung der Datei.Gültig mit NTFS formatierte FAT jedoch nicht auf dem Laufwerk.

  • st_dev
    Laufwerknummer des Datenträgers, der die Datei identisch ( st_rdev) enthält.

  • st_ino
    Die Nummer des Knotens Informationen inode() für die Datei (UNIX-Besondere).Klicken UNIX-Dateisystemen beschreibt inode das Datums- und Zeitstempel, Berechtigungen und Inhalt.Wenn Dateien miteinander hart-verknüpft werden, geben sie denselben inodefrei.inodeund daher st_ino, hat keine Bedeutung im HPFS, FAT oder NTFS-Dateisystemen im.

  • st_mode
    Bitmaske zu Dateimodus Informationen.Das _S_IFDIR Bit wird festgelegt, wenn path ein Verzeichnis angibt; _S_IFREG das Bit wird festgelegt, wenn path eine normale Datei oder ein Gerät angibt.Benutzer lese-schreib Bits werden nach dem Modus für Berechtigungen der Datei festgelegt. Benutzer führen Bits festgelegt, der der Dateinamenerweiterung aus.

  • st_mtime
    Zeitpunkt der letzten Änderung der Datei.

  • st_nlink
    Immer 1 in Dateisystemen Nicht NTFS.

  • st_rdev
    Laufwerknummer des Datenträgers, der die Datei identisch ( st_dev) enthält.

  • st_size
    Größe der Datei in Byte. Variationen für eine ganze 64-Bit-Zahl mit dem Suffix i64**.**

  • st_uid
    Numerischer Bezeichner des Benutzers, der UNIX-Besonderen (Datei) besitzt.Dieses Feld ist immer im Fenster systemen Null.Eine Datei umgeleitete wird z. B. eine Windows-Datei klassifiziert.

Wenn path ein Gerät verweist, sind die verschiedenen st_sizeZeitfelder, st_devund die st_rdev Felder in der _stat Struktur ohne 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.

Anforderungen

Routine

Erforderlicher Header

Optionale Header

_stat, _stat32, _stat64, _stati64, _stat32i64, _stat64i32

<sys/types.h> gefolgt von <sys/stat.h>

<errno.h>

_wstat, _wstat32, _wstat64, _wstati64, _wstat32i64, _wstat64i32

<sys/types.h> oder gefolgt von <sys/stat.h> <wchar.h>

<errno.h>

Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.

Beispiel

// crt_stat.c
// This program uses the _stat function to
// report information about the file named crt_stat.c.
 
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>

int main( void )
{
   struct _stat buf;
   int result;
   char timebuf[26];
   char* filename = "crt_stat.c";
   errno_t err;

   // Get data associated with "crt_stat.c": 
   result = _stat( filename, &buf );

   // Check if statistics are valid: 
   if( result != 0 )
   {
      perror( "Problem getting information" );
      switch (errno)
      {
         case ENOENT:
           printf("File %s not found.\n", filename);
           break;
         case EINVAL:
           printf("Invalid parameter to _stat.\n");
           break;
         default:
           /* Should never be reached. */
           printf("Unexpected error in _stat.\n");
      }
   }
   else
   {
      // Output some of the statistics: 
      printf( "File size     : %ld\n", buf.st_size );
      printf( "Drive         : %c:\n", buf.st_dev + 'A' );
      err = ctime_s(timebuf, 26, &buf.st_mtime);
      if (err)
      {
         printf("Invalid arguments to ctime_s.");
         exit(1);
      }
      printf( "Time modified : %s", timebuf );
   }
}
  

.NET Framework-Entsprechung

Siehe auch

Referenz

Datei-Behandlung

_access, _waccess

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_getmbcp

_setmbcp