Linux和各种Unix-like系统中有一重要概念————万物皆文件

分类

  • 根据处理方法的不同,分为:
  • 缓冲区文件
  • 非缓冲区文件
  • 根据其数据组织形式的不同,分为:
  • 文本文件
  • 二进制文件
  • 根据其存放数据的作用的不同,分为:
  • - 普通文件(regular)
  • d 目录文件
  • l 符号链接文件
  • 设备文件
    • b 块设备文件
    • c 字符设备文件
  • p 知名管道文件(FIFO)
  • s 套接字文件(socket)

索引节点

索引节点(inode)所包含的信息都封装在结构体stat中:

  1. struct stat {
  2. dev_t st_dev; /* ID of device containing file */
  3. ino_t st_ino; /* inode number */
  4. mode_t st_mode; /* protection */
  5. nlink_t st_nlink; /* number of hard links */
  6. uid_t st_uid; /* user ID of owner */
  7. gid_t st_gid; /* group ID of owner */
  8. dev_t st_rdev; /* device ID (if special file) */
  9. off_t st_size; /* total size, in bytes */
  10. blksize_t st_blksize; /* blocksize for filesystem I/O */
  11. blkcnt_t st_blocks; /* number of 512B blocks allocated */
  12. time_t st_atime; /* time of last access */
  13. time_t st_mtime; /* time of last modification */
  14. time_t st_ctime; /* time of last status change */
  15. };