_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32
Ruft Informationen über eine geöffnete 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 der geöffneten Datei.buffer
Zeiger zur Struktur, z von Ergebnissen zu speichern.
Rückgabewert
Gibt 0 zurück, wenn die DateiStatusinformationen abgerufen. Bei dem Rückgabewert von 1 gibt einen Fehler an. Wenn der Dateideskriptor ungültig ist, oder bufferNULL ist, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben. Wenn die Ausführung zulässig ist, um fortzufahren, wird errno auf EBADF, im Fall eines ungültigen Dateideskriptors oder auf EINVAL festgelegt, wenn bufferNULL ist.
Hinweise
Die _fstat-Funktion ruft Informationen über die geöffnete Datei ein, die fd zugeordnet wird und speichert sie in der Struktur, die auf den durch buffer gezeigt wird. Die _stat-Struktur, die in SYS\Stat.h, enthält die folgenden Felder.
st_atime
Zeit des letzten Dateizugriffs.st_ctime
Zeitpunkt der Erstellung der Datei.st_dev
Wenn ein Gerät, fd; 0 andernfalls.st_mode
Bitmaske zu Dateimodusinformation. Das _S_IFCHR Ausführungsbits wird festgelegt, wenn fd ein Gerät verweist. Das _S_IFREG Ausführungsbits wird festgelegt, wenn fd eine normale Datei verweist. Die Lese-Schreibbits werden entsprechend dem Berechtigungsmodus der Datei festgelegt. _S_IFCHR und anderer Konstanten werden in SYS\Stat.h definiert.st_mtime
Zeitpunkt der letzten Änderung der Datei.st_nlink
Immer 1 auf NichtNTFS Dateisystemen.st_rdev
Wenn ein Gerät, fd; 0 andernfalls.st_size
Größe einer Datei in Bytes.
Wenn fd ein Objekt verweist, sind st_atime, st_ctime, st_mtime und st_size Felder nicht sinnvoll.
Da Stat.h den _dev_t-Typs, der in Types.h definiert ist, müssen Sie Types.h vor Stat.h im Code.
_fstat64, die die __stat64-Struktur verwendet, unterstützt von 23:59 die oben angegeben werden können, DateiErstellungsdatumsangaben: 59 3000 am 31. Dezember, UTC; während die anderen Funktionen nur Datumsangaben von 03:14 darstellen: Am 7. Januar 19 2038, UTC. Mitternacht am 1. Januar 1970 ist die untere Begrenzung des Zeitraums für alle diese Funktionen.
Variationen dieser Funktionsstütz32-bit- oder 64 bit-Zeittypen und -32-Bit- oder 64-Bit-Version Datei lang. Das erste numerische Suffix (32 oder 64) gibt die Größe des verwendeten Zeittyps an; das zweite Suffix ist entweder i32 oder i64 angibt, ob die Dateigröße als 32-Bit- oder 64-Bit-ganzeZahl dargestellt wird.
_fstat entspricht _fstat64i32, struct und _stat enthält eine 64-Bit-Zeit. Dies gilt, es sei denn, _USE_32BIT_TIME_T definiert wird, in diesem Fall das alte Verhalten gültig ist; _fstat verwendet eine 32-Bit-Zeit, struct und _stat enthält eine 32-Bit-Zeit. Das gilt für _fstati64 erfüllt.
Die Zeit Typs fest und fügen Sie Längen-Typ-Variationen von _stat
Funktionen |
_USE_32BIT_TIME_T definiert? |
Zeittyp |
Dateilängentyp |
---|---|---|---|
_fstat |
Nicht definiert |
64 Bit |
32 Bit |
_fstat |
Definiert |
32 Bit |
32 Bit |
_fstat32 |
Beeinflusst weder von der Makrodefinition |
32 Bit |
32 Bit |
_fstat64 |
Beeinflusst weder von der Makrodefinition |
64 Bit |
64 Bit |
_fstati64 |
Nicht definiert |
64 Bit |
64 Bit |
_fstati64 |
Definiert |
32 Bit |
64 Bit |
_fstat32i64 |
Beeinflusst weder von der Makrodefinition |
32 Bit |
64 Bit |
_fstat64i32 |
Beeinflusst weder 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 zur Kompatibilität finden Sie unter 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. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.