_stat, _wstat İşlevleri
Dosya durumu bilgilerini alın.
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(str
const char *path,
struct _stat32i64 *buffer
);
int _stat64i32(str
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
);
Parametreler
path
Varolan dosya veya dizin yolunu içeren bir dize işaretçisi.buffer
Sonuçları depolar yapısı için işaretçi.
Dönüş Değeri
Dosya durumu bilgilerini aldıysanız Bu işlevlerden her biri 0 değerini döndürür.–1 Dönüş değeri, bu durumda bir hata gösterir errno ayarlamak ENOENT, dosya adı veya yolu bulunamadı olduğunu gösteren.Dönüş değeri EINVAL geçersiz bir parametre; gösterir errnoAyrıca ayarlamak EINVAL bu durumda.
[!NOT]
path Konumunu içeren bir dizin, bir ters eğik çizgi içeremez.Bulursa, -1 döndürülür ve errno ayarlanacak ENOENT.
Bkz: _doserrno, errno, _sys_errlist ve _sys_nerr bu ve diğer ilgili daha fazla bilgi için kodları dönün.
Kullandığınız sürece sonraki gece, 1 Ocak 1970'den ve 23: 59: 59, 31 Aralık 3000 utc, önce ise, bir dosyanın tarih damgası temsil _stat32 veya _wstat32, ya da tanımladığınız _USE_32BIT_TIME_T, yalnızca 03: 14: 07 kadar 19 Ocak 2038 utc Tarih durumda gösterilebilir.
Notlar
_stat İşlevi tarafından belirtilen dizin ya da dosya hakkında bilgi edinir path göre sıralanmasını yapısında saklar ve buffer._statşu anda kullanımda çok baytlı kod sayfasına göre çok baytlı karakter dizileri tanımayı çok baytlı karakter dizesi değişkenleri uygun şekilde otomatik olarak yönetir.
_wstatgeniş karakter sürümü _stat; path bağımsız değişkeni _wstat bir geniş karakter dizesidir._wstatve _stat dışında aynı şekilde davranır _wstat çok baytlı karakter dizeleri işlemez.
Bu fonksiyonlar çeşitlemelerin 32 veya 64 bit saat türleri ve 32 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.
_stateşittir _stat64i32, 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 _statbir 32-bit süre kullanır ve struct_stat 32-bit saati içerir.Aynı durum _stati64.
[!NOT]
_wstatçalışmıyor Windows Vista sembolik bağlantılar.Bu durumda, _wstat her zaman 0 dosya boyutunu rapor eder._statSimgesel bağlantılar ile düzgün çalışır.
Bu işlev parametreleri doğrular.path Veya buffer olan NULL, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre Doğrulama.
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ü |
---|---|---|---|
_stat, _wstat |
Tanımlı değil |
64 bit |
32 bit |
_stat, _wstat |
Tanımlanmış |
32 bit |
32 bit |
_stat32, _wstat32 |
Makro tanımına göre etkilenmez |
32 bit |
32 bit |
_stat64, _wstat64 |
Makro tanımına göre etkilenmez |
64 bit |
64 bit |
_stati64, _wstati64 |
Tanımlı değil |
64 bit |
64 bit |
_stati64, _wstati64 |
Tanımlanmış |
32 bit |
64 bit |
_stat32i64, _wstat32i64 |
Makro tanımına göre etkilenmez |
32 bit |
64 bit |
_stat64i32, _wstat64i32 |
Makro tanımına göre etkilenmez |
64 bit |
32 bit |
Genel metin yordamı eşlemeleri
TCHAR.H yordamına girildi |
_UNICODE & _mbcs tanımlı değil |
Tanımlanan _mbcs |
Tanımlanan _UNICODE |
---|---|---|---|
_tstat |
_stat |
_stat |
_wstat |
_tstat64 |
_stat64 |
_stat64 |
_wstat64 |
_tstati64 |
_stati64 |
_stati64 |
_wstati64 |
_tstat32i64 |
_stat32i64 |
_stat32i64 |
_wstat32i64 |
_tstat64i32 |
_stat64i32 |
_stat64i32 |
_wstat64i32 |
_stat sys\stat içinde tanımlanan yapı.H, aşağıdaki alanları içerir.
st_gid
Bu alan dosya (UNIX özgü) sahibi olan grubun sayısal bir tanımlayıcı, her zaman Windows sistemlerinde sıfır olacak.Yönlendirilen bir Windows dosyası olarak sınıflandırılır.st_atime
Dosyanın son erişim saati.Geçerli ntfs ancak değil üzerinde fat disk sürücüsüne biçimlendirilmiş.st_ctime
Dosyanın oluşturulma saati.Geçerli ntfs ancak değil üzerinde fat disk sürücüsüne biçimlendirilmiş.st_dev
Sürücü dosyasını içeren disketi sayısı (aynı st_rdev).st_ino
Bilgi düğüm sayısı ( inode) (UNIX özgü) dosyası için.UNIX dosya sistemlerinde, inode dosya tarih ve zaman damgaları, izinleri ve içeriği açıklar.Dosyaları sabit birbirine bağlı olduğunda, aynı paylaştıkları inode.inodeVe bu nedenle st_ino, fat, hpfs ve ntfs dosya sistemleri bir anlamı yoktur.st_mode
Dosya modu bilgi bit maskesi._S_IFDIR Bit ayarlanmışsa path bir dizin; belirtir _S_IFREG bit ayarlanmışsa path sıradan bir dosya veya bir aygıtı belirtir.Kullanıcı okuma/yazma BITS dosyanın izin modunu göre ayarlanır; Kullanıcı yürütme bit dosya adı uzantısına göre ayarlanır.st_mtime
Dosyanın son değişikliğin yapıldığı saat.st_nlink
Her zaman 1 NTFS olmayan dosya sistemleri.st_rdev
Sürücü dosyasını içeren disketi sayısı (aynı st_dev).st_size
Dosyanın bayt cinsinden boyutu; 64-bit bir tamsayı değişimleri için i64 son**.**st_uid
Dosya (UNIX özgü) sahibi olan kullanıcının sayısal bir tanımlayıcı.Bu alan, her zaman Windows sistemlerinde sıfır olacak.Yönlendirilen bir Windows dosyası olarak sınıflandırılır.
path Bir aygıt için başvuruda st_size, çeşitli saat alanları, st_dev, ve st_rdev bulunan alanları _stat yapısı anlamsız.Çünkü stat.H kullanır _dev_t içinde tanımlanan TÜRLERİ yani yazın.H, TÜRLERİ dahil etmeniz gerekir.H stat önce.H kodunuzda.
Gereksinimler
Yordamı |
Gerekli başlık |
İsteğe bağlı üstbilgileri |
---|---|---|
_stat, _stat32, _stat64, _stati64, _stat32i64, _stat64i32 |
<sys/types.h> <sys/stat.h> tarafından izlenen |
<errno.h> |
_wstat, _wstat32, _wstat64, _wstati64, _wstat32i64, _wstat64i32 |
<sys/types.h> <sys/stat.h> tarafından izlenen veya <wchar.h> |
<errno.h> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
// 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 );
}
}
.NET Framework Eşdeğeri
Ayrıca bkz.
Başvuru
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32