1. //! 需要包含de头文件
  2. #include <sys/types.h>
  3. #include <sys/stat.h>

S_ISLNK(st_mode):是否是一个连接.
S_ISREG(st_mode):是否是一个常规文件.
S_ISDIR(st_mode):是否是一个目录
S_ISCHR(st_mode):是否是一个字符设备.
S_ISBLK(st_mode):是否是一个块设备
S_ISFIFO(st_mode):是否 是一个FIFO文件.
S_ISSOCK(st_mode):是否是一个SOCKET文件 

  1. int stat(const char *filename, struct stat *buf); //! prototype,原型
  2. struct stat
  3. {
  4. dev_t       st_dev;     /* ID of device containing file -文件所在设备的ID*/
  5. ino_t       st_ino;     /* inode number -inode节点号*/
  6. mode_t      st_mode;    /* protection -保护模式?*/
  7. nlink_t     st_nlink;   /* number of hard links -链向此文件的连接数(硬连接)*/
  8. uid_t       st_uid;     /* user ID of owner -user id*/
  9. gid_t       st_gid;     /* group ID of owner - group id*/
  10. dev_t       st_rdev;    /* device ID (if special file) -设备号,针对设备文件*/
  11. off_t       st_size;    /* total size, in bytes -文件大小,字节为单位*/
  12. blksize_t   st_blksize; /* blocksize for filesystem I/O -系统块的大小*/
  13. blkcnt_t    st_blocks;  /* number of blocks allocated -文件所占块数*/
  14. time_t      st_atime;   /* time of last access -最近存取时间*/
  15. time_t      st_mtime;   /* time of last modification -最近修改时间*/
  16. time_t      st_ctime;   /* time of last status change - */
  17. };

  1. #include <iostream>
  2. #include <ctime>
  3. #include <sys/types.h>
  4. #include <sys/stat.h>
  5. using namespace std;
  6. int
  7. main ()
  8. {
  9. struct stat buf;
  10. int result;
  11. result = stat ("./Makefile", &buf);
  12. if (result != 0)
  13. {
  14. perror ("Failed ^_^");
  15. }
  16. else
  17. {
  18. //! 文件的大小,字节为单位
  19. cout << "size of the file in bytes: " << buf.st_size << endl;
  20. //! 文件创建的时间
  21. cout << "time of creation of the file: " << ctime (&buf.st_ctime) <<
  22. endl;
  23. //! 最近一次修改的时间
  24. cout << "time of last modification of the file: " <<
  25. ctime (&buf.st_mtime) << endl;
  26. //! 最近一次访问的时间
  27. cout << "time of last access of the file: " << ctime (&buf.st_atime)
  28. << endl;
  29. }
  30. return 0;
  31. }

  1. $ ./test
  2. size of the file in bytes: 36
  3. time of creation of the file: Sun May 24 18:38:10 2009
  4. time of last modification of the file: Sun May 24 18:38:10 2009
  5. time of last access of the file: Sun May 24 18:38:13 2009

struct stat结构体的详解和用法的更多相关文章

  1. 结构体指针,C语言结构体指针详解

    结构体指针,可细分为指向结构体变量的指针和指向结构体数组的指针. 指向结构体变量的指针 前面我们通过“结构体变量名.成员名”的方式引用结构体变量中的成员,除了这种方法之外还可以使用指针. 前面讲过,& ...

  2. inode结构体成员详解

    概述:inode译成中文就是索引节点,它用来存放档案及目录的基本信息,包含时间.档名.使用者及群组等.inode分为内存中的inode和文件系统中的inode,为了避免混淆,我们称前者为VFS ino ...

  3. Solidity的自定义结构体深入详解

    一.结构体定义 结构体,Solidity中的自定义类型.我们可以使用Solidity的关键字struct来进行自定义.结构体内可以包含字符串,整型等基本数据类型,以及数组,映射,结构体等复杂类型.数组 ...

  4. IPv4地址结构体sockaddr_in详解

    sockaddr_in结构体定义 struct sockaddr_in { sa_family_t sin_family; //地址族(Address Family) uint16_t sin_por ...

  5. struct socket结构体详解

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://weiguozhihui.blog.51cto.com/3060615/15852 ...

  6. Scala 深入浅出实战经典 第53讲:Scala中结构类型实战详解

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  7. struct ifreq结构体与ip,子网掩码,网关等信息

    总结一下,今天学习的关于通过socket,ioctl来获得ip,netmask等信息,其中很多内容参照了很多网上的信息,我会一一列出的 我用的这个函数,就是下面这个函数,其中的有一些全局变量,很好懂, ...

  8. Golang面向对象编程-struct(结构体)

    Golang面向对象编程-struct(结构体) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是面向对象编程 面向对象编程(Object Oriented Program ...

  9. struct timeval结构体 以及 gettimeofday()函数(转)

    struct timeval结构体 转载地址:http://blog.chinaunix.net/uid-20548989-id-2533161.html 该结构体是Linux系统中定义,struct ...

随机推荐

  1. Oracle 连接 Visual Studio 的工具

    Oracle 连接 Visual Studio 的工具 ① ② ③

  2. 复制表结构和数据SQL语句

    select * into 目标表名 from 源表名 insert into 目标表名(fld1, fld2) select fld1, 5 from 源表名 以上两句都是将 源表 的数据插入到 目 ...

  3. XML引入多scheme文件约束简单示例

    XML引入多scheme文件约束简单示例,用company.xsd和department.xsd来约束company.xml: company.xsd <?xml version="1 ...

  4. php升级5.3到5.4,5.5,5.6

    Laravel要求php大于5.5.9,升级php5.3.3到5.6.14(最新版为 5.6.15 ) Add EPEL and Remi repositories onto your system: ...

  5. SGU185 Two shortest(最小费用最大流/最大流)

    题目求一张图两条边不重复的最短路. 一开始我用费用流做. 源点到1连容量2费用0的边:所有边,连u到v和v到u容量1费用cost的边. 总共最多会增广两次,比较两次求得的费用,然后输出路径. 然而死M ...

  6. c++ string 结束符‘\000’

    昨天输出string类型时总是出错,发现输出到文件的一行里多了^@,输出到console却看不到,debug发现,string类型中多了\000,这主要由于我想要用\0截掉字符串最后一位,所以把字符串 ...

  7. 【POJ】2187 Beauty Contest(旋转卡壳)

    http://poj.org/problem?id=2187 显然直径在凸包上(黑书上有证明).(然后这题让我发现我之前好几次凸包的排序都错了QAQ只排序了x轴.....没有排序y轴.. 然后本题数据 ...

  8. 【BZOJ】1180: [CROATIAN2009]OTOCI & 2843: 极地旅行社(lct)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1180 今天状态怎么这么不好..................................... ...

  9. JQuery获取和设置Select选项常用方法总结 (转)

    1.获取select 选中的 text: $("#cusChildTypeId").find("option:selected").text(); $(&quo ...

  10. Winform窗体事件发生顺序

    Form 和Control 类公开了一组与应用程序启动和关闭相关联的事件.当Windows 窗体应用程序启动时,主窗体的启动事件按以下顺序引发: System.Windows.Forms.Contro ...