_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.
Hinweis |
---|
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.
Hinweis |
---|
_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
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32