Aracılığıyla paylaş


_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

Açık bir dosya hakkında bilgi alır.

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

Parametreler

  • fd
    Açık dosyanın dosya tanımlayıcısı.

  • buffer
    Sonuçları saklamak yapısına yönelik işaretçinin.

Dönüş Değeri

Dosya durumu bilgilerini aldıysanız, 0 değerini döndürür. –1 Dönüş değeri bir hata olduğunu gösterir. Dosya tanımlayıcısı geçersiz ise veya buffer olan NULL, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama. Yürütülmesine devam etmek için izin verilip verilmediğini errno ayarlamak EBADF, geçersiz dosya tanımlayıcısı olması halinde veya çok EINVAL, buffer olan NULL.

Notlar

_fstat İşlevi ile ilişkili açık dosya hakkında bilgi edinir fd göre sıralanmasını yapısında saklar ve buffer. _stat SYS\Stat.h içinde tanımlanan yapı, aşağıdaki alanları içerir.

  • st_atime
    Son dosya erişim zamanı.

  • st_ctime
    Dosyanın oluşturulma saati.

  • st_dev
    Bir aygıt, fd; Aksi takdirde 0.

  • st_mode
    Dosya modu bilgi bit maskesi. _S_IFCHR Bit ayarlanmışsa fd bir aygıtı gösterir. _S_IFREG Bit ayarlanmışsa fd sıradan bir dosyaya başvurur. Okuma/yazma BITS dosyanın izin modunu göre ayarlanır. _S_IFCHRve diğer sabitler SYS\Stat.h tanımlanır.

  • st_mtime
    Dosyanın son değiştirilme saati.

  • st_nlink
    Her zaman 1 NTFS olmayan dosya sistemleri.

  • st_rdev
    Bir aygıt, fd; Aksi takdirde 0.

  • st_size
    Dosyanın bayt cinsinden boyutu.

fd Bir aygıt için başvuruda st_atime, st_ctime, st_mtime, ve st_size alanlar anlamlı değildir.

STAT.h kullandığı için _dev_t yazın, Types.h içinde tanımlandığı, Stat.h önce Types.h kodunuzu içermelidir.

_fstat64, kullanan __stat64 yapısı, 23: 59: 59 ile 31 Aralık 3000 utc; yukarı ifade için dosya oluşturma tarihleri verir diğer işlevler yalnızca 03: 14: 07 19 Ocak 2038 utc aracılığıyla tarihleri gösteren oysa. Gece yarısı, 1 Ocak 1970, bu işlevler için tarih aralığı alt sınırdır.

Bu işlevler çeşitlerini 32-bit veya 64-bit saat türleri ve 32-bit veya 64-bit dosya uzunluklarını destekler. İlk sayısal sonek (32 veya 64) kullanılan; zaman yazı tipi boyutu gösterir İkinci soneki olması i32 veya i64, belirten dosya boyutu 32-bit veya 64-bit bir tamsayı olarak temsil edilir.

_fstateşittir _fstat64i32, ve struct_stat 64-bit saati içerir. Bu doğrudur sürece _USE_32BIT_TIME_T , bu durumda eski davranışı; yürürlükte tanımlanır _fstatbir 32-bit süre kullanır ve struct_stat 32-bit saati içerir. Aynı durum _fstati64.

Saat türü ve dosya uzunluğu türü _stat çeşidi

İşlevler

Tanımlanan _USE_32BIT_TIME_T?

Saat türü

Dosya uzunluğu türü

_fstat

Tanımlı değil

64 bit

32 bit

_fstat

Tanımlanmış

32 bit

32 bit

_fstat32

Makro tanımına göre etkilenmez

32 bit

32 bit

_fstat64

Makro tanımına göre etkilenmez

64 bit

64 bit

_fstati64

Tanımlı değil

64 bit

64 bit

_fstati64

Tanımlanmış

32 bit

64 bit

_fstat32i64

Makro tanımına göre etkilenmez

32 bit

64 bit

_fstat64i32

Makro tanımına göre etkilenmez

64 bit

32 bit

Gereksinimler

İşlev

Gerekli başlık

_fstat

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

_fstat32

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

_fstat64

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

_fstati64

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

_fstat32i64

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

_fstat64i32

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

Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.

Örnek

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

.NET Framework Eşdeğeri

Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.

Ayrıca bkz.

Başvuru

Dosya işleme

_access, _waccess

_chmod, _wchmod

_filelength, _filelengthi64

_stat, _wstat işlevleri