函数 stat() 详解

先看看MSDN的解釋:
stat(): Get status information on a file.
Parameters:
    path:  pointer to a string containing the path of existing file.
    buffer:  pointer to a structure that stores results.
int _stat(
   const char *path,
   struct _stat *buffer 
);
 
結構體 _stat 的定义在 sys\stat.h 裏面,具體內容可自行查看,包括主要的字段為:
  
  
st_gid

Numeric identifier of group that owns the file (UNIX-specific) This field will always be zero on Windows systems. A redirected file is classified as a Windows file.

st_atime

Time of last access of file. Valid on NTFS but not on FAT formatted disk drives.

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 variations with the i64 suffix.

st_uid

Numeric identifier of user who owns file (UNIX-specific). This field will always be zero on Windows systems. A redirected file is classified as a Windows 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.

 
下面通過一個demo實例來描述下函數的使用。
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>

int main(int argc,char *argv[])
{
    struct _stat buf;
    int result = 0;
    char *filename="D:\\test.txt";//注意分隔符转换

    result = _stat(filename,&buf);
    if(result == 0){
        printf("\nFile Infomation\n");
        printf("file size = [%d]\n",buf.st_size);
        printf("file dev=[%c]\n",buf.st_rdev+'A');//注意加上大A
        return 0;
    }
    return -1;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值