zoukankan      html  css  js  c++  java
  • APUE 学习笔记(三) 文件和目录

    1. 文件类型

    文件类型信息包含在 struct stat 里的 st_mode 成员

    (1)普通文件,unix内核并不区分文本文件和二进制文件
    (2)目录文件,这种文件包含了其他文件的名字以及指向这些文件有关信息的指针
    (3)块特殊文件
    (4)字符特殊文件
    (5)FIFO, 常用于进程间通信,也称为管道
    (6)套接字socket,常用于进程间网络通信
    (7)符号链接 (必须使用lstat函数,获取的是符号链接本身的类型信息,而不是符号链接所指向的文件的类型信息)
     

    2.文件长度

    stat结构成员st_size 以字节为单位,此字段只对 普通文件、目录文件、符号链接有意义
    对于符号链接,st_size 成员表示 该符号链接所指向的文件的文件名长度
     

    3.文件系统

     
    i节点是固定长度的记录项,包含有关文件的大部分信息
     
    (1)每个i节点中都有一个链接计数,其值是指向该i节点的目录项数。只有当链接计数减少至0时,才可以删除该文件
    stat结构体中 st_nlink成员表示链接计数。这种类型成为硬链接
     
    (2)符号链接:该文件的实际内容包含了该符号链接所指向的文件的名字
    符号链接是指向一个文件的间接指针,硬链接直接指向文件的i节点
    硬链接有一些限制:
    a.硬链接通常要求链接和文件位于同一文件系统中
    b.只有超级用户才能创建指向目录的硬链接
    符号链接没有这两个限制,任何用户都可以创建符号链接,且没有文件系统限制
     
    用open打开文件时,如果传递给open函数的路径名指定了一个符号链接,那么open跟随此链接到达你所链接的文件,如果该文件不存在,那么open出错
    open函数跟随符号链接,读取符号链接本身必须使用 readlink函数
     
    (3)每个分区的文件系统各自对它们的i节点进行编号,因此不能是一个目录项指向另一个文件系统的i节点,也就是ln命令不能跨越文件系统的原因
     

    4.目录操作

    opendir
    readdir
    seekdir
    closedir
    mkdir
    rmdir
  • 相关阅读:
    网络知识学习系列(一)
    C# 开发系列(三)
    angularJS 系列(三)- 自定义 Service
    添加百度地图,显示定位
    angularJS 系列(二)——理解指令 understanding directives
    angularJS 系列(一)
    hbuilder 手机app开发系列(一)
    vue + 百度地图api
    百度地图api
    canvas的api
  • 原文地址:https://www.cnblogs.com/wwwjieo0/p/3710373.html
Copyright © 2011-2022 走看看