Exportar (0) Imprimir
Expandir todo
div
eof
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

_stat, _wstat (Funciones)

Obtenga información de estado en un archivo.

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

Puntero a una cadena que contiene la ruta del archivo o de directorio.

buffer

Puntero a la estructura que almacena los resultados.

Cada una de estas funciones devuelve 0 si se obtiene la información de estado del archivo. Un valor devuelto de – 1 indica un error, en este caso errno se establece en ENOENT, que indica que el nombre del archivo o la ruta no se encuentra. Un valor devuelto de EINVAL indica un parámetro no válido; errno también se establece en EINVAL en este caso.

Nota Nota

si path contiene la ubicación de un directorio, no puede contener una barra diagonal inversa final. Si lo hace, -1 se devolverá y errno se establecerá en ENOENT.

Vea _doserrno, errno, _sys_errlist, y _sys_nerr para obtener más información sobre esto, y otro, códigos de retorno.

La marca de fecha en un archivo puede ser representado si es posterior a medianoche, el 1 de enero de 1970, y antes de 23:59: 59, el 31 de diciembre, 3000, la hora UTC, a menos que utilice _stat32 o _wstat32, o tienen _USE_32BIT_TIME_Tdefinido, en este caso la fecha se puede representar sólo hasta 03:14: 7 de enero de 19, 2038, La hora UTC.

La función de _stat obtiene información sobre el archivo o el directorio especificado por path y la almacena en la estructura designada por a buffer. _stat controla automáticamente argumentos de cadena de caracteres multibyte según corresponda, reconociendo secuencias de caracteres multibyte según la página de códigos multibyte actualmente en uso.

_wstat es una versión con caracteres anchos de _stat; el argumento de path a _wstat es una cadena de caracteres. _wstat y _stat se comportan exactamente igual excepto que _wstat no controla las cadenas de caracteres multibyte.

Variaciones de compatibilidad 32 de estas funciones o tipos de 64 bits del tiempo, y 32 - o longitud 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.

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

Nota Nota

_wstat no funciona con los vínculos simbólicos de Windows Vista . En estos casos, _wstat notificará siempre un tamaño de archivo de 0. _stat funciona correctamente con los vínculos simbólicos.

esta función valida sus parámetros. Si path 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.

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

_stat , _wstat

no definido

64 bits

32 bits

_stat , _wstat

Definido

32 bits

32 bits

_stat32 , _wstat32

No se ve afectado por la definición de macro

32 bits

32 bits

_stat64 , _wstat64

No se ve afectado por la definición de macro

64 bits

64 bits

_stati64 , _wstati64

no definido

64 bits

64 bits

_stati64 , _wstati64

Definido

32 bits

64 bits

_stat32i64 , _wstat32i64

No se ve afectado por la definición de macro

32 bits

64 bits

_stat64i32 , _wstat64i32

No se ve afectado por la definición de macro

64 bits

32 bits

Asignaciones de la rutina de texto genérico

rutina de TCHAR.H

_UNICODE y _MBCS no definido

_MBCS definido

_UNICODE definido

_tstat

_stat

_stat

_wstat

_tstat64

_stat64

_stat64

_wstat64

_tstati64

_stati64

_stati64

_wstati64

_tstat32i64

_stat32i64

_stat32i64

_wstat32i64

_tstat64i32

_stat64i32

_stat64i32

_wstat64i32

La estructura de _stat , definido en SYS \STAT.H, incluye los siguientes campos.

st_gid

El identificador numérico del grupo que posee el campo (UNIX-específico) este de archivo siempre será cero en los sistemas de Windows. un archivo redirigido se clasifica como archivo de Windows.

st_atime

Hora del último acceso del archivo. Válido en NTFS pero no en FAT formateó unidades de disco.

st_ctime

Hora de creación del archivo. Válido en NTFS pero no en FAT formateó unidades de disco.

st_dev

Número de unidades de disco que contiene el archivo (igual que st_rdev).

st_ino

Número de nodo de información ( inode) para el archivo (UNIX-específico). En los sistemas de archivos UNIX, inode describe la fecha y las marcas de tiempo, los permisos, y contenido. Cuando los archivos duro-se vinculados a otro, comparten mismo inode. inodey, por consiguiente st_ino, no tiene ningún significado en FAT, HPFS, o sistemas de archivos NTFS.

st_mode

Máscara de bits de información del modo de acceso de archivo. se establece el bit de _S_IFDIR si path especifica un directorio; se establece el bit de _S_IFREG si path especifica un archivo normal o un dispositivo. Los bits de lectura y escritura del usuario se establecen según el modo de permiso del archivo; el usuario ejecuta los bits se establece según la extensión de nombre de archivo.

st_mtime

Hora de modificación del archivo.

st_nlink

Siempre 1 en los sistemas de archivos no-NTFS.

st_rdev

Número de unidades de disco que contiene el archivo (igual que st_dev).

st_size

Tamaño de archivo en bytes; un entero de 64 bits para las variaciones con el sufijo.de i64

st_uid

Identificador numérico del usuario que posee el archivo (UNIX-específico). Este campo siempre será cero en los sistemas de Windows. un archivo redirigido se clasifica como archivo de Windows.

Si path hace referencia a un dispositivo, st_size, varios campos de tiempo, st_dev, y los campos de st_rdev en la estructura de _stat son sentido. Dado que STAT.H utiliza _dev_t tipo definido en TYPES.H, debe incluir TYPES.H antes de STAT.H en el código.

rutina

Encabezado necesario

encabezados opcionales

_stat , _stat32, _stat64, _stati64, _stat32i64, _stat64i32

<sistema/types.h> seguido de <sistema/stat.h>

<errno.h>

_wstat , _wstat32, _wstat64, _wstati64, _wstat32i64, _wstat64i32

<sistema/types.h> seguido de <sistema/stat.h> o <wchar.h>

<errno.h>

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

// 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 );
   }
}
Tamaño de archivo: 732
unidad: C:
tiempo modificado: Thu 7 de febrero de 14: 39:36 2002
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.