这是微软的文件状态函数族的文档。
函数名:_stat, _stat64, _stati64, _wstat, _wstat64, _wstati64
功能:获取文件的信息
int _stat( const char *path, struct _stat *buffer ); int _stat64( const char *path, struct __stat64 *buffer ); int _stati64( const char *path, struct _stati64 *buffer ); int _wstat( const wchar_t *path, struct _stat *buffer ); int _wstat64( const wchar_t *path, struct __stat64 *buffer ); int _wstati64( const wchar_t *path, struct _stati64 *buffer );
Parameters参数
-
path路径
- Pointer to a string containing the path of existing file.指向一个已经存在的文件的指针 buffer缓存
- Pointer to structure that stores results.指向文件信息存储的结构体
Return Value返回值
Each of these functions returns 0 if the file-status information is obtained. A return value of –1 indicates an error, in which case errno is set to ENOENT, indicating that the filename or path could not be found.
The date stamp on a file can be represented if it is later than midnight, January 1, 1970, and before 19:14:07 January 18, 2038, UTC unless you use _stat64 or _wstat64, in which case the date can be represented up till 23:59:59, December 31, 3000, UTC.
Remarks备注
The _stat function obtains information about the file or directory specified by path and stores it in the structure pointed to by buffer. _stat automatically handles multibyte-character string arguments as appropriate, recognizing multibyte-character sequences according to the multibyte code page currently in use.
_wstat is a wide-character version of _stat; the path argument to _wstat is a wide-character string. _wstat and _stat behave identically except that _wstat does not handle multibyte-character strings.
Generic-Text Routine Mappings
TCHAR.H routine | _UNICODE & _MBCS not defined | _MBCS defined | _UNICODE defined |
---|---|---|---|
_tstat | _stat | _stat | _wstat |
_tstat64 | _stat64 | _stat64 | _wstat64 |
_tstati64 | _stati64 | _stati64 | _wstati64 |
The _stat structure, defined in SYS\STAT.H, includes the following fields.
-
st_gid
- Numeric identifier of group that owns file (UNIX-specific) This field will always be zero on Windows NT systems. A redirected file is classified as a Windows NT file. st_atime
- Time of last access of file. Valid on NTFS but not on FAT formatted disk drives. Gives the same st_ctime
- Time of creation of file. Valid on NTFS but not on FAT formatted disk drives. st_dev
- Drive number of the disk containing the file (same as st_rdev). st_ino
- Number of the information node (the inode) for the file (UNIX-specific). On UNIX file systems, the inode describes the file date and time stamps, permissions, and content. When files are hard-linked to one another, they share the same inode. The inode, and therefore st_ino, has no meaning in the FAT, HPFS, or NTFS file systems. st_mode
- Bit mask for file-mode information. The _S_IFDIR bit is set if path specifies a directory; the _S_IFREG bit is set if path specifies an ordinary file or a device. User read/write bits are set according to the file's permission mode; user execute bits are set according to the filename extension. st_mtime
- Time of last modification of file. st_nlink
- Always 1 on non-NTFS file systems. st_rdev
- Drive number of the disk containing the file (same as st_dev). st_size
- Size of the file in bytes; a 64-bit integer for _stati64 and _wstati64 st_uid
- Numeric identifier of user who owns file (UNIX-specific). This field will always be zero on Windows NT systems. A redirected file is classified as a Windows NT file.
If path refers to a device, the st_size, various time fields, st_dev, and st_rdev fields in the _stat structure are meaningless. Because STAT.H uses the _dev_t type that is defined in TYPES.H, you must include TYPES.H before STAT.H in your code.
Requirements说明
Routine | Required header | Optional headers | Compatibility |
---|---|---|---|
_stat | <sys/types.h> followed by <sys/stat.h> | <errno.h> | Win 98, Win Me, Win NT, Win 2000, Win XP |
_stat64 | <sys/types.h> followed by <sys/stat.h> | <errno.h> | Win 98, Win Me, Win NT, Win 2000, Win XP |
_stati64 | <sys/types.h> followed by <sys/stat.h> | <errno.h> | Win 98, Win Me, Win NT, Win 2000, Win XP |
_wstat | <sys/types.h> followed by <sys/stat.h> or <wchar.h> | <errno.h> | Win NT, Win 2000, Win XP |
_wstat64 | <sys/types.h> followed by <sys/stat.h> or <wchar.h> | <errno.h> | Win NT, Win 2000, Win XP |
_wstati64 | <sys/types.h> followed by <sys/stat.h> or <wchar.h> | <errno.h> | Win NT, Win 2000, Win XP |
For additional compatibility information, see Compatibility in the Introduction.如果想获取更多的信息,请参考compatibility 的介绍。
Libraries库
All versions of the C run-time libraries. C run-time libraries的所有版本
Example例子
// crt_stat.c /* This program uses the _stat64 function to * report information about the file named stat.c. */ #include <time.h> #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> int main( void ) { struct __stat64 buf; int result; /* Get data associated with "crt_stat.c": */ result = _stat64( "crt_stat.c", &buf ); /* Check if statistics are valid: */ if( result != 0 ) perror( "Problem getting information" ); else { /* Output some of the statistics: */ printf( "File size : %ld\n", buf.st_size ); printf( "Drive : %c:\n", buf.st_dev + 'A' ); printf( "Time modified : %s", _ctime64( &buf.st_mtime ) ); } }
Sample Output输出
File size : 732 Drive : C: Time modified : Thu Feb 07 14:39:36 2002