Share via


_stat, _wstat funções

Obter informações sobre o status de um arquivo.

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

Parâmetros

  • path
    Ponteiro para uma seqüência de caracteres que contém o caminho do arquivo ou diretório existente.

  • buffer
    Ponteiro para a estrutura que armazena os resultados.

Valor de retorno

Cada uma dessas funções retornará 0 se as informações de status do arquivo são obtidas.Um valor retornado de – 1 indica um erro, na qual caso errno é conjunto para ENOENT, indicando que o caminho ou nome de arquivo não pôde ser encontrado. Um valor retornado de EINVAL indica um parâmetro inválido; errno também é conjunto para EINVAL Nesse caso.

Observação:

Se path contém o local de um diretório, ele não pode conter uma barra invertida. Se isso acontecer, -1 será retornado e errno será conjunto para ENOENT.

See _doserrno, errno, _sys_errlist e _sys_nerr para obter mais informações sobre esse e outros, retorne códigos.

O carimbo de data em um arquivo pode ser representado, se ele for mais recente do que meia-noite, 1 º de janeiro de 1970 e antes de 23: 59: 59, 31 de dezembro de 3000, UTC, a menos que você use _stat32 ou _wstat32, ou tiver definido _USE_32BIT_TIME_T, caso em que a data pode ser representada somente até 14: 03: 07 19 de janeiro de 2038, UTC.

Comentários

The _stat função obtém informações sobre o arquivo ou diretório especificado por path e os armazenamentos na estrutura de apontada por buffer. _stattrata automaticamente sistema autônomo argumentos de seqüência de caractere multibyte conforme apropriado, reconhecendo seqüências de caractere de multibyte de acordo com para a página de código multibyte atualmente em uso.

_wstat é uma versão de caractere largo da _stat; o path argumento para _wstat é uma seqüência de caracteres largos. _wstat e _stat tenham comportamento idêntico, exceto que _wstat não trata as seqüências de caractere de multibyte.

Variações dessas funções oferece suporte a tipos de 32 ou 64 bit de time e tamanhos de arquivo de 32 ou 64 bit.O primeiro sufixo numérico (32 ou 64) indica o dimensionar do time tipo usado; o segundo sufixo é i32 ou i64, que indica se o dimensionar do arquivo é representado sistema autônomo um inteiro de 32 bit ou 64 bit.

In Visual C++ 2005, _stat is equivalent to _stat64i32, and struct _stat contains a 64-bit time.This is true unless _USE_32BIT_TIME_T is defined, in which case the old behavior is in effect; _stat uses a 32-bit time, and struct _stat contains a 32-bit time.O mesmo vale para _stati64.

Esta função valida os parâmetros.Se qualquer um dos path ou buffer é NULL, o manipulador de parâmetro inválido é invocado, sistema autônomo descrito em Validação de parâmetro.

Tipo de time e arquivo length tipo variações de _stat

Funções

_USE_32BIT_TIME_T definido?

Tipo de time

Tipo de tamanho de arquivo

_stat, _wstat

Não definido

64 bit

32 bit

_stat, _wstat

Definido

32 bit

32 bit

_stat32, _wstat32

Não afetada pela definição de macro

32 bit

32 bit

_stat64, _wstat64

Não afetada pela definição de macro

64 bit

64 bit

_stati64, _wstati64

Não definido

64 bit

64 bit

_stati64, _wstati64

Definido

32 bit

64 bit

_stat32i64, _wstat32i64

Não afetada pela definição de macro

32 bit

64 bit

_stat64i32, _wstat64i32

Não afetada pela definição de macro

64 bit

32 bit

Mapeamentos de rotina de texto genérica

Rotina TCHAR.H

_UNICODE & _MBCS não 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

The _stat estrutura, definida no SYS\STAT.H, inclui os seguintes campos.

  • st_gid
    Identificador numérico do agrupar que possui o arquivo (específico do UNIX) Este campo será sempre zero nos sistemas Windows.Um arquivo redirecionado é classificado sistema autônomo um arquivo do Windows.

  • st_atime
    time do último acesso de arquivo.Válido em NTFS, mas não em FAT formatado drives de disco.

  • st_ctime
    time de criação de arquivo.Válido em NTFS, mas não em FAT formatado drives de disco.

  • st_dev
    Número do disco que contém o arquivo (mesmo que da unidadest_rdev).

  • st_ino
    Número do nó informações (o inode) para o arquivo (específico do UNIX). Em sistemas de arquivos UNIX, a inode Descreve a data do arquivo e carimbos de data / time, permissões e conteúdo. Quando arquivos são vinculados ao disco rígido uns aos outros, eles compartilham o mesmo inode. The inodee, portanto, st_ino, não tem significado em sistemas de arquivos FAT, HPFS ou NTFS.

  • st_mode
    Máscara de bit para informações sobre o modo de arquivo.The _S_IFDIR bit é conjunto se path Especifica um diretório; o _S_IFREG bit é conjunto se path Especifica um arquivo comum ou um dispositivo. Bits de leitura/gravar do usuário são definidas de acordo com o modo de permissão do arquivo; usuário executar bits forem definidos de acordo com a extensão de nome de arquivo.

  • st_mtime
    time da última modificação do arquivo.

  • st_nlink
    Sempre 1 em sistemas de arquivos não-NTFS.

  • st_rdev
    Número do disco que contém o arquivo (mesmo que da unidadest_dev).

  • st_size
    dimensionar do arquivo em bytes; um inteiro de 64 bit para variações com o i64 sufixo**.**

  • st_uid
    Identificador numérico do usuário que é proprietário de arquivo (específico do UNIX).Este campo será sempre zero nos sistemas Windows.Um arquivo redirecionado é classificado sistema autônomo um arquivo do Windows.

If path refere-se a um dispositivo, o st_size, vários campos de time, st_dev, e st_rdev campos na _stat estrutura fazem sentido. Como STAT.H usa o _dev_t tipo definido no TYPES.H, você deve incluir TYPES.H antes STAT.H em seu código.

Requisitos

Rotina

Cabeçalho necessário

Cabeçalhos opcionais

_stat, _stat32, _stat64, _stati64, _stat32i64, _stat64i32

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

<errno.h>

_wstat, _wstat32, _wstat64, _wstati64, _wstat32i64, _wstat64i32

<sys/types.h> seguido <sys/stat.h> ou <wchar.h>

<errno.h>

Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.

Exemplo

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

File size     : 732 Drive         : C: Time modified : Thu Feb 07 14:39:36 2002

Equivalente do NET Framework

Consulte também

Referência

Manipulação de arquivos

_access, _waccess

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_getmbcp

_setmbcp