Sdílet prostřednictvím


_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

Zpracování souborů

_access, _waccess

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_getmbcp

_setmbcp