stat.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. #ifndef _ASM_STAT_H
  2. #define _ASM_STAT_H
  3. #include <linux/types.h>
  4. struct __old_kernel_stat {
  5. unsigned int st_dev;
  6. unsigned int st_ino;
  7. unsigned int st_mode;
  8. unsigned int st_nlink;
  9. unsigned int st_uid;
  10. unsigned int st_gid;
  11. unsigned int st_rdev;
  12. long st_size;
  13. unsigned int st_atime, st_res1;
  14. unsigned int st_mtime, st_res2;
  15. unsigned int st_ctime, st_res3;
  16. unsigned int st_blksize;
  17. int st_blocks;
  18. unsigned int st_unused0[2];
  19. };
  20. struct stat {
  21. dev_t st_dev;
  22. long st_pad1[3]; /* Reserved for network id */
  23. ino_t st_ino;
  24. mode_t st_mode;
  25. nlink_t st_nlink;
  26. uid_t st_uid;
  27. gid_t st_gid;
  28. dev_t st_rdev;
  29. long st_pad2[2];
  30. off_t st_size;
  31. long st_pad3;
  32. /*
  33.  * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
  34.  * but we don't have it under Linux.
  35.  */
  36. time_t st_atime;
  37. long reserved0;
  38. time_t st_mtime;
  39. long reserved1;
  40. time_t st_ctime;
  41. long reserved2;
  42. long st_blksize;
  43. long st_blocks;
  44. long st_pad4[14];
  45. };
  46. /*
  47.  * This matches struct stat64 in glibc2.1, hence the absolutely insane
  48.  * amounts of padding around dev_t's.  The memory layout is the same as of
  49.  * struct stat of the 64-bit kernel.
  50.  */
  51. struct stat64 {
  52. unsigned long st_dev;
  53. unsigned long st_pad0[3]; /* Reserved for st_dev expansion  */
  54. unsigned long long st_ino;
  55. mode_t st_mode;
  56. nlink_t st_nlink;
  57. uid_t st_uid;
  58. gid_t st_gid;
  59. unsigned long st_rdev;
  60. unsigned long st_pad1[3]; /* Reserved for st_rdev expansion  */
  61. long long st_size;
  62. /*
  63.  * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
  64.  * but we don't have it under Linux.
  65.  */
  66. time_t st_atime;
  67. unsigned long reserved0; /* Reserved for st_atime expansion  */
  68. time_t st_mtime;
  69. unsigned long reserved1; /* Reserved for st_mtime expansion  */
  70. time_t st_ctime;
  71. unsigned long reserved2; /* Reserved for st_ctime expansion  */
  72. unsigned long st_blksize;
  73. unsigned long st_pad2;
  74. long long st_blocks;
  75. };
  76. #endif /* _ASM_STAT_H */