_fstat
, , _fstat32
_fstat64
, _fstati64
, , _fstat32i64
,_fstat64i32
Mendapatkan informasi tentang file yang terbuka.
Sintaks
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
);
Parameter
fd
Pendeskripsi file dari file yang terbuka.
buffer
Arahkan ke struktur untuk menyimpan hasil.
Nilai hasil
Mengembalikan 0 jika informasi status file diperoleh. Nilai pengembalian -1 menunjukkan kesalahan. Jika deskriptor file tidak valid atau buffer
, NULL
handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, errno
diatur ke EBADF
untuk deskriptor file yang tidak valid, atau ke EINVAL
jika buffer
adalah NULL
.
Keterangan
Fungsi ini _fstat
mendapatkan informasi tentang file terbuka yang terkait dengan fd
dan menyimpannya dalam struktur yang ditujukkan oleh buffer
. Struktur _stat
, yang ditentukan dalam SYS\Stat.h
, berisi bidang berikut.
Bidang | Makna |
---|---|
st_atime |
Waktu akses file terakhir. |
st_ctime |
Waktu pembuatan file. |
st_dev |
Jika perangkat, ; jika tidak, fd 0. |
st_mode |
Masker bit untuk informasi mode file. Bit _S_IFCHR diatur jika fd mengacu pada perangkat. Bit _S_IFREG diatur jika fd mengacu pada file biasa. Bit baca/tulis diatur sesuai dengan mode izin file. _S_IFCHR dan konstanta lainnya didefinisikan dalam SYS\Stat.h . |
st_mtime |
Waktu modifikasi terakhir file. |
st_nlink |
Selalu 1 pada sistem file non-NTFS. |
st_rdev |
Jika perangkat, ; jika tidak, fd 0. |
st_size |
Ukuran file dalam byte. |
Jika fd
mengacu pada perangkat, st_atime
bidang , , st_ctime
st_mtime
, dan st_size
tidak bermakna.
Karena Stat.h
menggunakan _dev_t
jenis , yang didefinisikan dalam Types.h
, Anda harus menyertakan Types.h
sebelumnya Stat.h
dalam kode Anda.
_fstat64
, yang menggunakan _stat64
struktur, memungkinkan tanggal pembuatan file dinyatakan hingga 23:59:59, 31 Desember 3000, UTC; sedangkan fungsi lain hanya mewakili tanggal hingga 23:59:59 18 Januari 2038, UTC. Batas bawah rentang tanggal untuk semua fungsi ini adalah Midnight, 1 Januari 1970.
Variasi fungsi ini mendukung jenis waktu 32-bit atau 64-bit dan panjang file 32-bit atau 64-bit. Akhiran numerik pertama (32
atau 64
) menunjukkan ukuran jenis waktu yang digunakan; akhiran kedua adalah i32
atau i64
, yang menunjukkan apakah ukuran file diwakili sebagai bilangan bulat 32-bit atau 64-bit.
Kecuali _USE_32BIT_TIME_T
didefinisikan, _fstat
setara dengan _fstat64i32
, dan _stat
berisi waktu 64-bit. Ketika _USE_32BIT_TIME_T
ditentukan, _fstat
menggunakan waktu 32-bit, dan _stat
berisi waktu 32-bit. Hal yang sama berlaku untuk _fstati64
.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Jenis waktu dan variasi jenis panjang file dari _stat
Fungsi | _USE_32BIT_TIME_T Didefinisikan? |
Jenis waktu | Jenis panjang file |
---|---|---|---|
_fstat |
Tidak ditentukan | 64-bit | 32-bit |
_fstat |
Didefinisikan | 32-bit | 32-bit |
_fstat32 |
Tidak terpengaruh oleh definisi makro | 32-bit | 32-bit |
_fstat64 |
Tidak terpengaruh oleh definisi makro | 64-bit | 64-bit |
_fstati64 |
Tidak ditentukan | 64-bit | 64-bit |
_fstati64 |
Didefinisikan | 32-bit | 64-bit |
_fstat32i64 |
Tidak terpengaruh oleh definisi makro | 32-bit | 64-bit |
_fstat64i32 |
Tidak terpengaruh oleh definisi makro | 64-bit | 32-bit |
Persyaratan
Function | Header yang diperlukan |
---|---|
_fstat |
<sys/stat.h> dan <sys/types.h> |
_fstat32 |
<sys/stat.h> dan <sys/types.h> |
_fstat64 |
<sys/stat.h> dan <sys/types.h> |
_fstati64 |
<sys/stat.h> dan <sys/types.h> |
_fstat32i64 |
<sys/stat.h> dan <sys/types.h> |
_fstat64i32 |
<sys/stat.h> dan <sys/types.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// 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
Lihat juga
Penanganan file
_access
, _waccess
_chmod
, _wchmod
_filelength
, _filelengthi64
_stat
, _wstat
fungsi
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk