Exportar (0) Imprimir
Expandir todo
and
div
eof
not
or
xor
Expandir Minimizar
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

AGREGAR
Mostrar:
© 2015 Microsoft