_stat
, _stat32
, _stat64
, _stati64
, _stat32i64
, _stat64i32
, _wstat
, _wstat32
, _wstat64
, _wstati64
, _wstat32i64
, _wstat64i32
Dapatkan informasi status pada file.
Sintaks
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(
const char *path,
struct _stat32i64 *buffer
);
int _stat64i32(
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
);
Parameter
path
Penunjuk ke string yang berisi jalur file atau direktori yang ada.
buffer
Penunjuk ke struktur yang menyimpan hasil.
Nilai hasil
Masing-masing fungsi ini mengembalikan 0 jika informasi status file diperoleh. Nilai pengembalian -1 menunjukkan kesalahan, dalam hal errno
ini diatur ke ENOENT
, menunjukkan bahwa nama file atau jalur tidak dapat ditemukan. Nilai EINVAL
pengembalian menunjukkan parameter yang tidak valid; errno
juga diatur ke EINVAL
dalam kasus ini.
Untuk informasi selengkapnya tentang kode pengembalian, lihat errno
, , _doserrno
_sys_errlist
, dan _sys_nerr
.
Stempel tanggal pada file dapat diwakili jika lebih lambat dari tengah malam, 1 Januari 1970, dan sebelum 23:59:59, 31 Desember 3000, UTC, kecuali Anda menggunakan _stat32
atau _wstat32
, atau telah menentukan _USE_32BIT_TIME_T
, dalam hal ini tanggal hanya dapat diwakili hingga 23:59:59 18 Januari 2038, UTC.
Keterangan
Fungsi ini _stat
mendapatkan informasi tentang file atau direktori yang ditentukan oleh path
dan menyimpannya dalam struktur yang ditujukkan oleh buffer
. _stat
secara otomatis menangani argumen string multibyte-character yang sesuai, mengenali urutan karakter multibyte sesuai dengan halaman kode multibyte yang saat ini digunakan.
_wstat
adalah versi karakter luas dari _stat
; path
argumen ke _wstat
adalah string karakter lebar. _wstat
dan _stat
bertingkah identik kecuali yang _wstat
tidak menangani string multibyte-character.
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.
_stat
setara _stat64i32
dengan , dan struct _stat
berisi waktu 64-bit, kecuali _USE_32BIT_TIME_T
didefinisikan, dalam hal ini perilaku lama berlaku; _stat
menggunakan waktu 32-bit, dan struct _stat
berisi waktu 32-bit. Hal yang sama berlaku untuk _stati64
.
Catatan
_wstat
tidak bekerja dengan tautan simbolis Windows Vista. Dalam kasus ini, _wstat
akan selalu melaporkan ukuran file 0. _stat
bekerja dengan benar dengan tautan simbolis.
Keluarga _stat
fungsi digunakan CreateFile
di Visual Studio 2015, alih-alih FindFirstFile
seperti di Visual Studio 2013 dan yang lebih lama. Ini berarti bahwa pada jalur yang _stat
diakhir dengan garis miring berhasil jika jalur mengacu pada direktori, dibandingkan dengan sebelumnya ketika fungsi akan kesalahan dengan errno
diatur ke ENOENT
.
Fungsi ini memvalidasi parameternya. Jika salah satu path
atau buffer
adalah NULL
, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter.
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 |
---|---|---|---|
_stat , _wstat |
Tidak ditentukan | 64-bit | 32-bit |
_stat , _wstat |
Didefinisikan | 32-bit | 32-bit |
_stat32 , _wstat32 |
Tidak terpengaruh oleh definisi makro | 32-bit | 32-bit |
_stat64 , _wstat64 |
Tidak terpengaruh oleh definisi makro | 64-bit | 64-bit |
_stati64 , _wstati64 |
Tidak ditentukan | 64-bit | 64-bit |
_stati64 , _wstati64 |
Didefinisikan | 32-bit | 64-bit |
_stat32i64 , _wstat32i64 |
Tidak terpengaruh oleh definisi makro | 32-bit | 64-bit |
_stat64i32 , _wstat64i32 |
Tidak terpengaruh oleh definisi makro | 64-bit | 32-bit |
Pemetaan rutin teks generik
TCHAR.H Rutin |
_UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tstat |
_stat |
_stat |
_wstat |
_tstat64 |
_stat64 |
_stat64 |
_wstat64 |
_tstati64 |
_stati64 |
_stati64 |
_wstati64 |
_tstat32i64 |
_stat32i64 |
_stat32i64 |
_wstat32i64 |
_tstat64i32 |
_stat64i32 |
_stat64i32 |
_wstat64i32 |
Struktur _stat
, yang didefinisikan dalam SYS\STAT.H
, mencakup bidang berikut.
Bidang | Deskripsi |
---|---|
st_gid |
Pengidentifikasi numerik grup yang memiliki file (khusus UNIX) Bidang ini akan selalu nol pada sistem Windows. File yang dialihkan diklasifikasikan sebagai file Windows. |
st_atime |
Waktu akses file terakhir. Valid pada NTFS tetapi tidak pada drive disk berformat FAT. |
st_ctime |
Waktu pembuatan file. Valid pada NTFS tetapi tidak pada drive disk berformat FAT. |
st_dev |
Nomor drive disk yang berisi file (sama dengan st_rdev ). |
st_ino |
Jumlah simpul informasi ( inode ) untuk file (khusus UNIX). Pada sistem file UNIX, inode menjelaskan stempel, izin, dan konten tanggal dan waktu file. Ketika file ditautkan secara permanen satu sama lain, file tersebut inode berbagi . , inode dan oleh karena itu st_ino , tidak memiliki arti dalam sistem file FAT, HPFS, atau NTFS. |
st_mode |
Masker bit untuk informasi mode file. Bit _S_IFDIR diatur jika path menentukan direktori; _S_IFREG bit diatur jika path menentukan file biasa atau perangkat. Bit baca/tulis pengguna diatur sesuai dengan mode izin file; bit eksekusi pengguna diatur sesuai dengan ekstensi nama file. |
st_mtime |
Waktu modifikasi file terakhir. |
st_nlink |
Selalu 1 pada sistem file non-NTFS. |
st_rdev |
Nomor drive disk yang berisi file (sama dengan st_dev ). |
st_size |
Ukuran file dalam byte; bilangan bulat 64-bit untuk variasi dengan akhiran i64 . |
st_uid |
Pengidentifikasi numerik pengguna yang memiliki file (khusus UNIX). Bidang ini akan selalu nol pada sistem Windows. File yang dialihkan diklasifikasikan sebagai file Windows. |
Jika path
mengacu pada perangkat, st_size
, berbagai bidang waktu, st_dev
, dan st_rdev
bidang dalam _stat
struktur tidak ada artinya. Karena STAT.H
menggunakan _dev_t
jenis yang ditentukan dalam TYPES.H
, Anda harus menyertakan TYPES.H
sebelumnya STAT.H
dalam kode Anda.
Persyaratan
Rutin | Header yang diperlukan | Header opsional |
---|---|---|
_stat , _stat32 , _stat64 , _stati64 , _stat32i64 , _stat64i32 |
<sys/types.h> diikuti oleh <sys/stat.h> |
<errno.h> |
_wstat , _wstat32 , _wstat64 , _wstati64 , _wstat32i64 , _wstat64i32 |
<sys/types.h> diikuti oleh <sys/stat.h> atau <wchar.h> |
<errno.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// 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
Baca juga
Penanganan file
_access
, _waccess
_fstat
, _fstat32
, _fstat64
, _fstati64
, _fstat32i64
, _fstat64i32
_getmbcp
_setmbcp
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