_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
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32