Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 _stat64i32dengan , 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 inodeberbagi . , inodedan 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
Lihat juga
Penanganan file
_access, _waccess
_fstat, , _fstat32_fstat64, _fstati64, , _fstat32i64,_fstat64i32
_getmbcp
_setmbcp