zoukankan      html  css  js  c++  java
  • 第四章:文件stat获取函数

    所在的头文件 <sys/stat.h>

    struct  stat{

      mode_t  st_mode;  /*文件的访问模式*/

      ino_t   st_ino;  /*i节点的信息*/

      dev_t    st_dev;  /*设备号*/

      dev_t   st_rdev;  /*特殊文件的设备号*/

      nlink_t  st_nlink;  /*硬链接接数*/

      uid_t    st_uid;    /*文件所有者的用户ID*/

      gid_t    st_gid;  /*文件所有者的组ID*/

      off_t    st_size;  /*普通文件的大小*/

      time_t  st_atime; /*文件的访问时间*/

      time_t  st_mtime;  /*文件的修改时间*/

      time_t  st_ctime; /*文件的状态改变时间*/

      blksize_t st_blksize;/*最佳I/O块大小*/

      blkcnt_t  st_blocks;/*文件所占用的磁盘块*/

    }

    注意:st_rdev  st_blksize  st_blocks  这三个字段不是  POSIX.1  要求的

    1、stat函数

      int  stat(const char* restrict pathname , struct stat * restrict   buf);

      跟随符号链接,该函数指定一个符号链接的时候,函数返回的是符号链接指向的文件的信息

     1 #include<stdio.h>
     2 #include<unistd.h>
     3 #include<sys/stat.h>
     4 
     5 int
     6 main(int argc, char** argv)
     7 {
     8         struct  stat    buf;
     9 
    10         stat(argv[1],&buf);
    11 
    12         printf("文件访问标志    :%o\n",buf.st_mode);
    13         printf("设备号          :%d\n",buf.st_dev);
    14         printf("特殊设备文件号  :%d\n",buf.st_rdev);
    15         printf("硬链接数        :%d\n",buf.st_nlink);
    16         printf("文件所有者用户ID:%d\n",buf.st_uid);
    17         printf("文件所有者组ID  :%d\n",buf.st_gid);
    18         printf("普通文件的大小  :%d\n",buf.st_size);
    19         printf("上次访问时间    :%d\n",buf.st_atime);
    20         printf("上次修改时间    :%d\n",buf.st_mtime);
    21         printf("上次状态更新时间:%d\n",buf.st_ctime);
    22         printf("最佳I/O块大小   :%d\n",buf.st_blksize);
    23         printf("文件所占块数    :%d\n",buf.st_blocks);
    24 
    25         return  0;
    26 }

      

    2、fstat函数

      int  fstat(int  fd, struct stat * buf);

      fstat 同 stat , 但是只是从文件描述符上获取 文件的 stat 信息

    3、lstat函数

      int  lstat(const char * restrict pathname , struct stat * buf);

      lstat函数同stat函数, 但是 lstat 函数不跟随符号链接 , 当访问符号链接的时候, 获取的是符号链接本身的stat,而不是其指向的文件的stat

     

  • 相关阅读:
    上网助手(集成ipv6)windows版
    c# 串口编程
    test blog
    用于主题检测的临时日志(d020b283408c4bc68872f97ee237b663 3bfe001a32de4114a6b44005b770f6d7)
    OpenGL概述 陌陌
    [转载][转帖]谈谈我对攻读计算机研究生的看法。。。大牛的文章,见解精深独到
    滚动值的兼容问题
    js小练习去掉指定的字符组成一句话输出
    马虎将classname加到了id属性中,造成报错
    锋利的jquery读书笔记(一)
  • 原文地址:https://www.cnblogs.com/wowk/p/3107815.html
Copyright © 2011-2022 走看看