Compartilhar via


_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

Obtém informações sobre um arquivo em aberto.

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

Parâmetros

  • fd
    Descritor de arquivo do arquivo em aberto.

  • buffer
    Ponteiro para a estrutura para armazenar os resultados.

Valor de retorno

Retorna 0 se as informações de status do arquivo são obtidas.Um valor retornado de – 1 indica um erro.Se o descritor de arquivo é inválido ou buffer é NULL, o manipulador de parâmetro inválido é invocado, sistema autônomo descrito em Validação de parâmetro. Se a execução for permitida para continuar, errno é conjunto para EBADF, no caso de um descritor de arquivo inválido, ou EINVAL, se buffer é NULL.

Comentários

The _fstat função obtém informações sobre o arquivo em aberto associado fd e os armazenamentos na estrutura de apontada por buffer. The _stat estrutura, definida no SYS\Stat.h, contém os seguintes campos.

  • st_atime
    time do último acesso de arquivo.

  • st_ctime
    time de criação do arquivo.

  • st_dev
    Se um dispositivo, fd; Caso contrário, 0.

  • st_mode
    Máscara de bit para informações sobre o modo de arquivo.The _S_IFCHR bit é conjunto se fd refere-se a um dispositivo. The _S_IFREG bit é conjunto se fd refere-se a um arquivo comum. Os bits de leitura/gravar são conjunto de acordo com para o modo de permissão do arquivo._S_IFCHR e Outros constantes definidas no SYS\Stat.h.

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

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

  • st_rdev
    Se um dispositivo, fd; Caso contrário, 0.

  • st_size
    dimensionar do arquivo em bytes.

If fd refere-se a um dispositivo, o st_atime, st_ctime, st_mtime, e st_size campos não são significativos.

Como Stat.h usa o _dev_t tipo, que é definido em Types.h, você deve incluir Types.h antes Stat.h em seu código.

_fstat64, que usa o __stat64 estrutura, permite que as datas de criação do arquivo para ser expressa até a 23: 59: 59, 31 de dezembro de 3000, UTC; enquanto as outras funções representam apenas datas até 14: 03: 07 19 de janeiro de 2038, UTC. Meia-noite, 1 º de janeiro de 1970, é o limite inferior do intervalo de datas para todas essas funções.

Variações dessas funções oferecem suporte a tipos de time de 32 bit ou 64 bit e tamanhos de arquivo de 32 bit 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, _fstat is equivalent to _fstat64i32, 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; _fstat uses a 32-bit time, and struct **_stat contains a 32-bit time.O mesmo vale para _fstati64.

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

_fstat

Não definido

64 bit

32 bit

_fstat

Definido

32 bit

32 bit

_fstat32

Não afetada pela definição de macro

32 bit

32 bit

_fstat64

Não afetada pela definição de macro

64 bit

64 bit

_fstati64

Não definido

64 bit

64 bit

_fstati64

Definido

32 bit

64 bit

_fstat32i64

Não afetada pela definição de macro

32 bit

64 bit

_fstat64i32

Não afetada pela definição de macro

64 bit

32 bit

Requisitos

Função

Cabeçalho necessário

_fstat

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

_fstat32

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

_fstat64

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

_fstati64

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

_fstat32i64

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

_fstat64i32

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

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

Exemplo

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

File size     : 16 Time modified : Wed May 07 15:25:11 2003

Equivalente do NET Framework

Não aplicável. Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Manipulação de arquivos

_access, _waccess

_chmod, _wchmod

_filelength, _filelengthi64

_stat, _wstat funções