_stat, _wstat – funkce
Získáte informace o stavu souboru.
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
);
Parametry
path
Ukazatel na řetězec obsahující cestu existující soubor nebo adresář.buffer
Ukazatel na strukturu, která ukládá výsledky.
Vrácená hodnota
Každá z těchto funkcí vrátí 0, pokud je získat informace o stavu souboru.Vrácenou hodnotu –1 v případě označuje chybu, errno je nastavena na ENOENT, označující, že název souboru nebo cesta nebyla nalezena.Vrácená hodnota EINVAL neplatný parametr označuje errnoje také nastavena na EINVAL v tomto případě.
[!POZNÁMKA]
Pokud path obsahuje umístění adresáře, nesmí obsahovat koncové zpětné lomítko.Pokud ano, bude vrácena -1 a errno bude ENOENT.
Viz _doserrno, kód chyby, _sys_errlist a _sys_nerr Další informace o tyto a další návratových kódů.
Datum razítka na souboru lze znázornit, pokud je vyšší než půlnoci 1. ledna 1970 a před 23: 59: 59, do 31. prosince 3000 UTC, pokud nepoužijete _stat32 nebo _wstat32, nebo jste _USE_32BIT_TIME_T, v takovém případě lze znázornit data pouze do 03: 14: 07 19 01.01.08, UTC.
Poznámky
_stat Funkce získává informace o souboru nebo adresáře zadaného path a uloží ve struktuře odkazuje buffer._statautomaticky zpracovává argumenty řetězec vícebajtových znaků podle potřeby UZNÁVAJÍCE vícebajtové znakové sekvence podle vícebajtové znakové stránky právě používán.
_wstatje verze celého znaku _stat; path argument _wstat je řetězec znaků wide._wstata _stat s výjimkou, že se chovají stejně _wstat nezpracovává vícebajtové znakové řetězce.
Variace těchto funkcí podporují typy času 32 nebo 64-bit a délky souboru 32 nebo 64 bitů.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.
_statje ekvivalentní _stat64i32, 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; _statpoužívá 32bitové čas, a struct_stat obsahuje čas 32-bit.Totéž platí pro _stati64.
[!POZNÁMKA]
_wstatnefunguje s Windows Vista symbolické odkazy.V těchto případech _wstat bude vždy sestavy velikost 0._statsprávně pracovat symbolické odkazy.
Tato funkce ověřuje jeho parametry.Pokud path nebo buffer je NULL, vyvolat neplatný parametr popisovače, jak je popsáno v Ověření parametru.
Typ času a typu Variant délky souboru _stat
Funkce |
Definice _USE_32BIT_TIME_T? |
Typ času |
Délka typu souboru |
---|---|---|---|
_stat, _wstat |
Není definován |
64bitová verze |
32bitová verze |
_stat, _wstat |
Definice |
32bitová verze |
32bitová verze |
_stat32, _wstat32 |
Nemá vliv na definici makra |
32bitová verze |
32bitová verze |
_stat64, _wstat64 |
Nemá vliv na definici makra |
64bitová verze |
64bitová verze |
_stati64, _wstati64 |
Není definován |
64bitová verze |
64bitová verze |
_stati64, _wstati64 |
Definice |
32bitová verze |
64bitová verze |
_stat32i64, _wstat32i64 |
Nemá vliv na definici makra |
32bitová verze |
64bitová verze |
_stat64i32, _wstat64i32 |
Nemá vliv na definici makra |
64bitová verze |
32bitová verze |
Obecný Text rutinní mapování
TCHAR.Rutina H |
_UNICODE & _MBCS není definován |
_MBCS, definice |
_UNICODE, definice |
---|---|---|---|
_tstat |
_stat |
_stat |
_wstat |
_tstat64 |
_stat64 |
_stat64 |
_wstat64 |
_tstati64 |
_stati64 |
_stati64 |
_wstati64 |
_tstat32i64 |
_stat32i64 |
_stat32i64 |
_wstat32i64 |
_tstat64i32 |
_stat64i32 |
_stat64i32 |
_wstat64i32 |
_stat Struktury, které jsou definovány v SYS\STAT.H, obsahuje následující pole.
st_gid
Číselný identifikátor skupiny, který vlastní soubor (specifické pro systém UNIX), toto pole bude vždy nula v systémech Windows.Přesměrovaný soubor je klasifikován jako soubor systému Windows.st_atime
Čas posledního přístupu k souboru.Platné na NTFS, ale nikoli na FAT naformátovat disky.st_ctime
Čas vytvoření souboru.Platné na NTFS, ale nikoli na FAT naformátovat disky.st_dev
Číslo disku, který obsahuje soubor jednotky (stejné jako st_rdev).st_ino
Číslo uzlu informace ( inode) pro soubor (specifické pro systém UNIX).V systémech UNIX souboru inode popisuje datum souboru a časová razítka, oprávnění a obsah.Pokud jsou soubory-spojený s sebou, sdílejí stejné inode.inodea proto st_ino, nemá žádný význam v systému souborů FAT, HPFS a NTFS.st_mode
Bitová maska, režim souboru informace._S_IFDIR Pokud je nastaven bit path určuje adresář; _S_IFREG Pokud je nastaven bit path určuje obvyklý soubor nebo zařízení.Uživatel pro čtení i zápis bity nastavte podle režimu oprávnění souboru; uživatel spustit bity jsou nastaveny příponu názvu souboru.st_mtime
Čas poslední změny souboru.st_nlink
Vždy 1 v systémech souborů než NTFS.st_rdev
Číslo disku, který obsahuje soubor jednotky (stejné jako st_dev).st_size
Velikost souboru v bajtech; 64bitové celé číslo s variace i64 přípona**.**st_uid
Číselný identifikátor uživatele, který vlastní soubor (specifické pro systém UNIX).Toto pole bude vždy nula v systémech Windows.Přesměrovaný soubor je klasifikován jako soubor systému Windows.
Pokud path zařízení, st_size, různá pole čas st_dev, a st_rdev pole _stat struktury jsou nesmyslné.Protože STAT.H používá _dev_t typ, který představuje v definované typy.H, je nutné zahrnout typy.H před STAT.H v kódu.
Požadavky
Rutina |
Požadované záhlaví |
Volitelné záhlaví |
---|---|---|
_stat, _stat32, _stat64, _stati64, _stat32i64, _stat64i32 |
<sys/types.h> Následuje <sys/stat.h> |
<errno.h> |
_wstat, _wstat32, _wstat64, _wstati64, _wstat32i64, _wstat64i32 |
<sys/types.h> Následuje <sys/stat.h> nebo <wchar.h> |
<errno.h> |
Další informace o kompatibilitě, viz Compatibility v úvodu.
Příklad
// 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 );
}
}
Ekvivalent v rozhraní .NET Framework
Viz také
Referenční dokumentace
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32