zoukankan      html  css  js  c++  java
  • 函数 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 的定义在 sysstat.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實例來描述下函數的使用。
      1. #include <stdio.h>  
      2. #include <sys/types.h>  
      3. #include <sys/stat.h>  
      4.   
      5. int main(int argc,char *argv[])  
      6. {  
      7.     struct _stat buf;  
      8.     int result = 0;  
      9.     char *filename="D:\test.txt";//注意分隔符转换  
      10.   
      11.     result = _stat(filename,&buf);  
      12.     if(result == 0){  
      13.         printf(" File Infomation ");  
      14.         printf("file size = [%d] ",buf.st_size);  
      15.         printf("file dev=[%c] ",buf.st_rdev+'A');//注意加上大A  
      16.         return 0;  
      17.     }  
      18.     return -1;  

  • 相关阅读:
    P1131 [ZJOI2007]时态同步(树形dp)
    P2831 愤怒的小鸟(状压dp)
    bzoj2456 / P2397 yyy loves Maths VI (mode)
    P1879 [USACO06NOV]玉米田Corn Fields(状压dp)
    P1026 统计单词个数
    P2679 子串
    数据库合并工具 esql
    在游戏中实现语音聊天和语音转化成文字
    在游戏中实现语音聊天和语音转化成文字
    类型强转的那些坑
  • 原文地址:https://www.cnblogs.com/lixiaofei1987/p/3228003.html
Copyright © 2011-2022 走看看