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

本文详细介绍了微软提供的文件状态函数族,包括_stat,_stat64等六个函数的功能、参数、返回值及使用示例。这些函数用于获取指定文件的状态信息,并适用于多种Windows系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是微软的文件状态函数族的文档。

函数名:_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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值