您的位置:首页 > 其它

获取文件信息函数:_stat, _stat64, _stati64, _wstat, _wstat64, _wstati64

2013-08-02 00:27 483 查看
这是微软的文件状态函数族的文档。

函数名:_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_gidNumeric 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_atimeTime of last access of file. Valid on NTFS but not on FAT formatted disk drives. Gives the samest_ctimeTime of creation of file. Valid on NTFS but not on FAT formatted disk drives.st_devDrive number of the disk containing the file (same as st_rdev).st_inoNumber 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_modeBit 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_mtimeTime of last modification of file.st_nlinkAlways 1 on non-NTFS file systems.st_rdevDrive number of the disk containing the file (same as st_dev).st_sizeSize of the file in bytes; a 64-bit integer for _stati64 and _wstati64st_uidNumeric 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说明

RoutineRequired headerOptional headersCompatibility
_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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: