[系统编程]文件与目录

文件系统##

一个磁盘可以分成多个分区,不同的分区可以有不同的文件系统


inode##

  • 文件的数据存放在磁盘的某个分区,因此我们同样需要有一个用于记录文件元信息的地方,这个就是inode区,每个文件的元信息都存放在inode的数据结构中
  • 用stat命令可以查看一个文件的元信息
  • linux下用函数int stat(const char *file_name, struct stat *buf);可以获取文件的元信息
struct stat:#####
struct stat {
    dev_t         st_dev;       /* 文件系统的设备编号 */
    ino_t         st_ino;       /* inode number */
    mode_t        st_mode;      /* 设置用户ID,设置组ID,权限访问位, 文件类型 */
    nlink_t       st_nlink;     /* 连到该文件的硬连接数目,刚建立的文件值为1 */
    uid_t         st_uid;       /* 用户ID */
    gid_t         st_gid;       /* 组ID */
    dev_t         st_rdev;      /* 实际设备号 */
    off_t         st_size;      /* 文件字节数(文件大小) */
    unsigned long st_blksize;   /* 块大小(文件系统的I/O 缓冲区大小) */
    unsigned long st_blocks;    /* 块数 */
    time_t        st_atime;     /* 最后一次访问时间 */
    time_t        st_mtime;     /* 文件的数据最后修改的时间 */
    time_t        st_ctime;     /* inode最后更改时间 */
};

硬链接与符号链接##

  • 硬链接
    不同的目录项拥有相同的inode number,指向同一个inode

  • 符号链接

posted @ 2016-06-26 02:12  mark.zhuang  阅读(140)  评论(0)    收藏  举报