¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

Obtiene información sobre un archivo abierto.

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

fd

Descriptor de archivo del archivo abierto.

buffer

Puntero a la estructura para almacenar los resultados.

Devuelve 0 si se obtiene la información de estado del archivo. Un valor devuelto de – 1 indica un error. Si el descriptor de archivo no es válido o buffer es NULL, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, errno se establece en EBADF, en el caso descriptor de archivo no válido, o a EINVAL, si buffer es NULL.

La función de _fstat recopila información sobre el archivo abierto asociado a fd y la almacena en la estructura designada por a buffer. La estructura de _stat , definido en SYS\Stat.h, contiene los siguientes campos.

st_atime

Hora de acceso a archivos pasado.

st_ctime

Hora de creación del archivo.

st_dev

Si un dispositivo, fd; si no 0.

st_mode

Máscara de bits de información del modo de acceso de archivo. Se establece el bit de _S_IFCHR si fd hace referencia a un dispositivo. Se establece el bit de _S_IFREG si fd hace referencia a un archivo normal. Los bits de lectura y escritura se establecen según el modo de permiso del archivo. _S_IFCHR y otras constantes se definen en SYS\Stat.h.

st_mtime

Hora de modificación del archivo.

st_nlink

Siempre 1 en los sistemas de archivos no NTFS.

st_rdev

Si un dispositivo, fd; si no 0.

st_size

Tamaño de archivo en bytes.

Si fd hace referencia a un dispositivo, st_atime, st_ctime, st_mtime, y los campos de st_size no son significativos.

Dado que Stat.h utiliza el tipo de _dev_t , que se define en Types.h, debe incluir Types.h antes de Stat.h en el código.

_fstat64 , que utiliza la estructura de __stat64 , permite que las fechas de creación de archivos se expresadas hacia arriba con 23:59: 59, el 31 de diciembre, 3000, hora UTC; mientras que las demás funciones representan sólo las fechas con 03:14: 7 de enero de 19, 2038, La hora UTC. La medianoche, el 1 de enero de 1970, es el límite inferior del intervalo de fechas para todas estas funciones.

Las variaciones de estas funciones admiten tipos de 32 bits o de 64 bits de tiempo y longitudes de 32 bits o de 64 bits del archivo. El primer sufijo numérico (32 o 64) indica el tamaño del tipo de tiempo utilizado; el segundo sufijo es i32 o i64, que indica si el tamaño de archivo está representado como un entero de 32 bits o de 64 bits.

_fstat es equivalente a _fstat64i32, y struct_stat contiene una hora 64 bits. Esto es así a menos que se defina _USE_32BIT_TIME_T , en cuyo caso el comportamiento antiguo está vigente; _fstat utiliza un período de 32 bits, y struct_stat contiene un plazo de 32 bits. Lo mismo sucede con _fstati64.

El tipo y el archivo Length de tiempo escriben variaciones de _stat

Funciones

¿_USE_32BIT_TIME_T definido?

Tipo de tiempo

Tipo de la longitud del archivo

_fstat

No definido

64 bits

32 bits

_fstat

Definido

32 bits

32 bits

_fstat32

No se ve afectado por la definición de macro

32 bits

32 bits

_fstat64

No se ve afectado por la definición de macro

64 bits

64 bits

_fstati64

No definido

64 bits

64 bits

_fstati64

Definido

32 bits

64 bits

_fstat32i64

No se ve afectado por la definición de macro

32 bits

64 bits

_fstat64i32

No se ve afectado por la definición de macro

64 bits

32 bits

Función

Encabezado necesario

_fstat

<sistema/stat.h y> sistema </types.h>

_fstat32

<sistema/stat.h y> sistema </types.h>

_fstat64

<sistema/stat.h y> sistema </types.h>

_fstati64

<sistema/stat.h y> sistema </types.h>

_fstat32i64

<sistema/stat.h y> sistema </types.h>

_fstat64i32

<sistema/stat.h y> sistema </types.h>

Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.

// 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 );
}
Tamaño de archivo: 16
Tiempo modificado: Miércoles 7 de mayo de 15: 25:11 2003

No es aplicable Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Adiciones de comunidad

Mostrar:
© 2015 Microsoft