Share via


_stat, fonctions de _wstat

Les informations d'état get sur un fichier.

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

Paramètres

  • path
    Pointeur vers une chaîne contenant le chemin d'accès au fichier ou au répertoire.

  • buffer
    Pointeur à structurer que stocke les résultats.

Valeur de retour

Chacune de ces fonctions retourne 0 si les informations de fichier-état sont obtenues.Une valeur de retour - 1 indique une erreur, dans ce cas errno est défini à ENOENT, indiquant que le nom et le chemin d'accès du fichier est introuvable.Une valeur de retour d' EINVAL indique qu'un paramètre non valide ; errno est également défini dans EINVAL dans ce cas.

[!REMARQUE]

si path contient l'emplacement d'un répertoire, il ne peut pas contenir une barre oblique inverse de fin.Si tel est le cas, -1 sera retourné et errno aura la valeur ENOENT.

Consultez _doserrno, errno, _sys_errlist, et _sys_nerr pour plus d'informations sur cette opération, ainsi que d'autres, les codes de retour.

Le tampon-date sur un fichier peut être représenté s'il est ultérieure à minuit, le 1er janvier 1970, et avant 23h59 : 59, le 31 décembre, 3000, l'heure UTC, sauf si vous utilisez _stat32 ou _wstat32, ou ont défini _USE_32BIT_TIME_T, auquel cas la date peut être représentée uniquement jusqu'à 3h14 : Le 7 janvier 19, 2038, l'heure UTC.

Notes

La fonction d' _stat obtient des informations sur le fichier ou le répertoire spécifié par path et les stocke dans la structure désignée par buffer._stat gère automatiquement les arguments de chaîne de caractères multioctets comme approprié, l'identification des séquences de caractères multioctets d'après la page de codes multioctets en cours de utilisation.

_wstat est une version à caractère élargi d' _stat; l'argument d' path à _wstat est une chaîne à caractères larges._wstat et _stat se comportent de la même façon qu'il _wstat ne gère pas les chaînes de caractères multioctets.

Les variations de ces fonctions prennent en charge 32 ou type d'heure 64 bits, et 32 ou longueurs 64 bits de fichier.le premier suffixe numérique (32 ou 64) indique la taille du type de temps utilisé ; le deuxième suffixe est i32 ou i64, indiquant si la taille du fichier est représentée sous la forme 32 bits ou entier 64 bits.

_stat équivaut à _stat64i32, et struct_stat contient l'heure 64 bits.Cela est vrai à moins qu' _USE_32BIT_TIME_T défini, dans ce cas l'ancien comportement est activé ; _stat utilise l'heure 32 bits, et struct_stat contient l'heure 32 bits.Il en va de même pour _stati64.

[!REMARQUE]

_wstat ne fonctionne pas avec les liens physiques de Windows Vista .Dans ces cas, _wstat utilise toujours une taille du fichier de 0._stat fonctionne correctement avec les liens physiques.

cette fonction valide ses paramètres.si path ou buffer est NULL, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.

Calculez des variations de type et de longueur de fichier du _stat

Fonctions

_USE_32BIT_TIME_T défini ?

type de temps

Type de longueur du fichier

_stat, _wstat

non défini

64 bits

32 bits

_stat, _wstat

(défini par)

32 bits

32 bits

_stat32, _wstat32

non affecté par la définition de macro

32 bits

32 bits

_stat64, _wstat64

non affecté par la définition de macro

64 bits

64 bits

_stati64, _wstati64

non défini

64 bits

64 bits

_stati64, _wstati64

(défini par)

32 bits

64 bits

_stat32i64, _wstat32i64

non affecté par la définition de macro

32 bits

64 bits

_stat64i32, _wstat64i32

non affecté par la définition de macro

64 bits

32 bits

mappages de routines de texte générique

routine de TCHAR.H

_MBCS & de _UNICODE non défini

_MBCS défini

_UNICODE défini

_tstat

_stat

_stat

_wstat

_tstat64

_stat64

_stat64

_wstat64

_tstati64

_stati64

_stati64

_wstati64

_tstat32i64

_stat32i64

_stat32i64

_wstat32i64

_tstat64i32

_stat64i32

_stat64i32

_wstat64i32

La structure d' _stat , définie dans le système \STAT.H, inclut les champs suivants.

  • st_gid
    L'identificateur numérique du groupe qui possède le fichier (UNIX-détail) ce champ est toujours zéro sur les systèmes Windows.Un fichier est redirigé classifié en tant que fichier Windows.

  • st_atime
    Heure du dernier accès.valide sur NTFS mais pas sur FAT a mis en forme des lecteurs de disques.

  • st_ctime
    Heure de création de fichier.valide sur NTFS mais pas sur FAT a mis en forme des lecteurs de disques.

  • st_dev
    Nombre de lecteur de disque contenant le fichier (même qu' st_rdev).

  • st_ino
    Numéro du nœud d'informations ( inode) du fichier (UNIX-détail).Sur les systèmes de fichiers UNIX, inode décrit les mémoires tampons, les autorisations, et le contenu de date et d'heure de fichier.Lorsque les fichiers dur-sont liés les uns aux autres, ils partagent même inode.inode, et par conséquent st_ino, n'a aucune signification dans FAT, le HPFS, ou les systèmes de fichiers NTFS.

  • st_mode
    masque de bits pour les informations de mode d'accès au fichier.le bit d' _S_IFDIR est défini si path spécifie un répertoire ; le bit d' _S_IFREG est défini si path spécifie un fichier ordinaire ou un périphérique.Les bits en lecture/écriture d'utilisateur sont définis selon le mode de l'autorisation de fichier ; l'utilisateur exécute les bits sont définis selon l'extension du nom de fichier.

  • st_mtime
    Heure de la dernière modification de fichiers.

  • st_nlink
    toujours 1 sur les systèmes de fichiers non-NTFS.

  • st_rdev
    Nombre de lecteur de disque contenant le fichier (même qu' st_dev).

  • st_size
    taille du fichier en octets ; entier 64 bits pour les variations par rapport au suffixe**.**d' i64

  • st_uid
    identificateur numérique de l'utilisateur qui possède le fichier (UNIX-détail).Ce champ est toujours zéro sur les systèmes Windows.Un fichier est redirigé classifié en tant que fichier Windows.

Si path fait référence à un périphérique, st_size, les champs individuels d'heure, l' st_dev, et champs de st_rdev dans la structure d' _stat sont sans signification.Étant donné que STAT.H utilise le type de _dev_t défini dans TYPES.H, vous devez inclure TYPES.H avant STAT.H dans votre code.

Configuration requise

routine

en-tête requis

en-têtes facultatifs

_stat, _stat32, _stat64, _stati64, _stat32i64, _stat64i32

<sys/types.h> suivi <sys/stat.h>

<errno.h>

_wstat, _wstat32, _wstat64, _wstati64, _wstat32i64, _wstat64i32

<sys/types.h> traçage ou <sys/stat.h> <wchar.h>

<errno.h>

Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.

Exemple

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

Équivalent .NET Framework

Voir aussi

Référence

Gestion de fichiers

_access, _waccess

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_getmbcp

_setmbcp