Udostępnij za pośrednictwem


_stat, _wstat — Funkcje

Uzyskaj informacje o stanie pliku.

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
    Wskaźnik na ciąg znaków zawierający ścieżkę do istniejącego pliku lub katalogu.

  • buffer
    Wskaźnik do struktury, która przechowuje wyniki.

Wartość zwracana

Każda z tych funkcji zwraca wartość 0, jeżeli jest uzyskane informacje o stanie pliku.Zwracana wartość –1 wskazuje na błąd, w którym to przypadku errno jest ustawiona na ENOENT, wskazując, że nazwa pliku lub ścieżki nie można odnaleźć.Zwracana wartość wynosząca EINVAL wskazuje nieprawidłowy parametr; errnojest również ustawiona na EINVAL w tym przypadku.

[!UWAGA]

Jeśli path zawiera lokalizację katalogu, nie zawierają ukośnik odwrotny na końcu.Jeśli tak się stanie, zostanie zwrócony -1 i errno zostanie ustawiona na ENOENT.

Zobacz _doserrno, errno, _sys_errlist i _sys_nerr Aby uzyskać więcej informacji na temat tego i innych, kody zwracane.

Może być reprezentowany stempel daty pliku, jeśli jest później niż północy, 1 stycznia 1970 r. i przed dniem 23: 59: 59, 31 grudnia, 3000, UTC, chyba że za pomocą _stat32 lub _wstat32, lub _USE_32BIT_TIME_T, w którym to przypadku daty może być reprezentowany tylko do 03: 14: 07 19 stycznia 2038, UTC.

Uwagi

_stat Funkcja uzyskuje informacje o pliku lub katalogu określonego przez path i zapisuje go w strukturze wskazywanej przez buffer._statautomatycznie obsługuje argumentów łańcuch znaków wielobajtowych, odpowiednio, uznając sekwencje znaków wielobajtowych, zgodnie z obecnie używanej strony kodowej wielobajtowych.

_wstatjest to wersja szerokich znaków _stat; path argument _wstat jest łańcuch szerokich znaków._wstati _stat zachowują się identycznie, z wyjątkiem _wstat nie obsługuje ciągów znaków wielobajtowych.

Różnice te funkcje obsługi typów czasu 32 - lub 64-bitowe i 32 - lub 64-bitowy plik długości.Pierwszy sufiks numeryczny (32 lub 64) wskazuje rozmiar typu Godzina używane; drugi sufiks jest albo i32 lub i64, wskazując czy rozmiar pliku jest reprezentowane jako liczba całkowita 32-bitowa lub 64-bitowych.

_statjest równoważne z _stat64i32, i struct_stat zawiera czas 64-bitowych.Jest to wartość true chyba że _USE_32BIT_TIME_T jest zdefiniowany, w którym to przypadku starego zachowania obowiązuje; _statużywa czasu 32-bitowych, i struct_stat zawiera czas 32-bitowych.To samo dotyczy dla _stati64.

[!UWAGA]

_wstatnie działa z Windows Vista łączy symbolicznych.W tych przypadkach _wstat będzie zawsze raport plik o rozmiarze 0._statdziałać poprawnie z łączy symbolicznych.

Funkcja ta sprawdza poprawność jego parametry.Jeśli albo path lub buffer jest NULL, wywoływana jest funkcja obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.

Typ czasu i zmian typu długość pliku _stat

Funkcje

Definicja _USE_32BIT_TIME_T?

Typ czasu

Typ długość pliku

_stat, _wstat

Nie zdefiniowano

64-bitowe

32-bitowe

_stat, _wstat

Definicja

32-bitowe

32-bitowe

_stat32, _wstat32

Nie dotyczy definicji makra

32-bitowe

32-bitowe

_stat64, _wstat64

Nie dotyczy definicji makra

64-bitowe

64-bitowe

_stati64, _wstati64

Nie zdefiniowano

64-bitowe

64-bitowe

_stati64, _wstati64

Definicja

32-bitowe

64-bitowe

_stat32i64, _wstat32i64

Nie dotyczy definicji makra

32-bitowe

64-bitowe

_stat64i32, _wstat64i32

Nie dotyczy definicji makra

64-bitowe

32-bitowe

Tekst rodzajowy rutynowych mapowania

TCHAR.Rutynowe H

_UNICODE & Nie zdefiniowano _MBCS

_MBCS, definicja

_UNICODE, definicja

_tstat

_stat

_stat

_wstat

_tstat64

_stat64

_stat64

_wstat64

_tstati64

_stati64

_stati64

_wstati64

_tstat32i64

_stat32i64

_stat32i64

_wstat32i64

_tstat64i32

_stat64i32

_stat64i32

_wstat64i32

_stat Struktury zdefiniowane w SYS\STAT.H, zawiera następujące pola.

  • st_gid
    Identyfikator numeryczny, grupy, która jest właścicielem pliku (specyficzne dla systemu UNIX), to pole będzie zawsze równa zero w systemach Windows.Przekierowanego pliku jest klasyfikowany jako plików systemu Windows.

  • st_atime
    Czas ostatniego dostępu do pliku.Ważne na NTFS, ale nie na tłuszcz sformatowane dysków.

  • st_ctime
    Czas utworzenia pliku.Ważne na NTFS, ale nie na tłuszcz sformatowane dysków.

  • st_dev
    Numer dysku zawierającego plik dysku (taki sam jak st_rdev).

  • st_ino
    Liczba węzłów informacje ( inode) dla pliku (specyficzne dla systemu UNIX).W systemach plików systemu UNIX inode w tym artykule opisano datę pliku i sygnatur czasowych, uprawnienia i zawartości.Gdy pliki są twarde związanych ze sobą, udział taki sam inode.inodei w związku z tym st_ino, nie ma znaczenia w systemach plików FAT, HPFS lub NTFS.

  • st_mode
    Maska bitów dla informacji o trybie pliku._S_IFDIR Bit jest ustawiony, jeśli path Określa katalog; _S_IFREG bit jest ustawiony, jeśli path określa zwykły plik lub urządzenie.Użytkownik odczytu i zapisu bity są ustawione zgodnie z tryb uprawnień pliku; użytkownikowi wykonywanie bity są ustawione zgodnie z rozszerzeniem nazwy pliku.

  • st_mtime
    Czas ostatniej modyfikacji pliku.

  • st_nlink
    Zawsze 1 w systemach plików niż NTFS.

  • st_rdev
    Numer dysku zawierającego plik dysku (taki sam jak st_dev).

  • st_size
    Rozmiar pliku w bajtach; 64-bitowa liczba całkowita dla zmian z i64 sufiks**.**

  • st_uid
    Identyfikator numeryczny użytkownika, który jest właścicielem pliku (specyficzne dla systemu UNIX).To pole będzie zawsze równa zero, w systemach Windows.Przekierowanego pliku jest klasyfikowany jako plików systemu Windows.

Jeśli path odnosi się do urządzenia, st_size, różnych pól Godzina, st_dev, i st_rdev pól w _stat struktury są pozbawione sensu.Ponieważ STAT.H zastosowań _dev_t czyli typ zdefiniowanych w TYPACH.H, musi zawierać typów.H przed STAT.H w kodzie.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

Opcjonalna nagłówki

_stat, _stat32, _stat64, _stati64, _stat32i64, _stat64i32

<sys/types.h> następuje <sys/stat.h>

<errno.h>

_wstat, _wstat32, _wstat64, _wstati64, _wstat32i64, _wstat64i32

<sys/types.h> następuje <sys/stat.h> lub <wchar.h>

<errno.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

Przykład

// 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 );
   }
}
  

Odpowiednik w programie .NET Framework

Zobacz też

Informacje

Obsługa plików

_access, _waccess

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_getmbcp

_setmbcp