_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

obtient des informations sur un fichier ouvert.

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

Paramètres

  • fd
    Descripteur du fichier ouvert.

  • buffer
    Pointeur vers la structure pour stocker des résultats.

Valeur de retour

Retourne 0 si les informations de fichier-état sont obtenues.Une valeur de retour - 1 indique une erreur.Si le descripteur de fichier n'est pas valide ou buffer est NULL, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, errno est défini à EBADF, dans le cas d'un descripteur de fichier valide, ou à EINVAL, si buffer est NULL.

Notes

La fonction d' _fstat obtient des informations sur l'ouverture de fichier associé à fd et les stocke dans la structure désignée par buffer.la structure d' _stat , définie dans le système \Stat .h, contient les champs suivants.

  • st_atime
    Heure du dernier accès au fichier.

  • st_ctime
    Heure de la création du fichier.

  • st_dev
    Si un appareil, fd; sinon 0.

  • st_mode
    masque de bits pour les informations de mode d'accès au fichier.Le bit d' _S_IFCHR est défini si fd fait référence à un périphérique.Le bit d' _S_IFREG est défini si fd fait référence à un fichier ordinaire.Les bits en lecture/écriture sont définis selon le mode de l'autorisation de fichier._S_IFCHR et d'autres constantes sont définis dans le système \Stat .h.

  • st_mtime
    Heure de la dernière modification du fichier.

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

  • st_rdev
    Si un appareil, fd; sinon 0.

  • st_size
    taille du fichier en octets.

Si fd fait référence à un périphérique, st_atime, st_ctime, st_mtime, et champs de st_size ne sont pas explicites.

É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.

_fstat64, qui utilise la structure d' __stat64 , accorde les dates de fichier-création à exprimer via le 23h59 : 59, le 31 décembre, 3000, l'heure UTC ; alors que les autres fonctions représentent uniquement des dates via le 3h14 : Le 7 janvier 19, 2038, l'heure UTC.Minuit, le 1er janvier 1970, correspond à la limite inférieure de la plage de dates pour toutes ces fonctions.

Les variations de ces fonctions prennent en charge 32 bits ou des type d'heure 64 bits et longueurs 32 bits ou 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.

_fstat équivaut à _fstat64i32, 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é ; _fstat utilise l'heure 32 bits, et struct_stat contient l'heure 32 bits.Il en va de même pour _fstati64.

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

_fstat

non défini

64 bits

32 bits

_fstat

(défini par)

32 bits

32 bits

_fstat32

non affecté par la définition de macro

32 bits

32 bits

_fstat64

non affecté par la définition de macro

64 bits

64 bits

_fstati64

non défini

64 bits

64 bits

_fstati64

(défini par)

32 bits

64 bits

_fstat32i64

non affecté par la définition de macro

32 bits

64 bits

_fstat64i32

non affecté par la définition de macro

64 bits

32 bits

Configuration requise

Fonction

en-tête requis

_fstat

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

_fstat32

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

_fstat64

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

_fstati64

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

_fstat32i64

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

_fstat64i32

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

Pour plus d'informations de compatibilité, consultez compatibilité dans l'introduction.

Exemple

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

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.

Voir aussi

Référence

Gestion de fichiers

_access, _waccess

_chmod, _wchmod

_filelength, _filelengthi64

_stat, fonctions de _wstat