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

转载于:https://www.cnblogs.com/wwwjieo0/p/3710373.html

APUE 学习笔记(三) 文件和目录相关推荐

  1. python文件是什么的集合和抽象_python学习笔记(三):文件操作和集合

    这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 1 2 3 ...

  2. Python学习笔记_文件读写,目录遍历类封装

    文件读写和目录遍历类的封装. mylib.py 1 # -*- coding:utf-8 -*- 2 3 __author__ = 'huanghuan' 4 5 import os 6 from o ...

  3. APUE读书笔记-04文件和目录(1)

    转载于:https://blog.51cto.com/quietheart/762759

  4. APUE读书笔记-04文件和目录(5)

    转载于:https://blog.51cto.com/quietheart/765499

  5. ROS学习笔记三:创建ROS软件包

    ,# ROS学习笔记三:创建ROS软件包 catkin软件包的组成 一个软件包必须满足如下条件才能被称之为catkin软件包: 这个软件包必须包含一个catkin编译文件package.xml(man ...

  6. python3常用模块_Python学习笔记三(常用模块)

    Python 学习笔记三 (常用模块) 1.os模块 os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果. os.name:返回当前操作系统名称( ...

  7. K8S 学习笔记三 核心技术 Helm nfs prometheus grafana 高可用集群部署 容器部署流程

    K8S 学习笔记三 核心技术 2.13 Helm 2.13.1 Helm 引入 2.13.2 使用 Helm 可以解决哪些问题 2.13.3 Helm 概述 2.13.4 Helm 的 3 个重要概念 ...

  8. TIVA_C学习笔记三

    TIVA_C学习笔记三 关于解决keil下不了的问题 通过摸索我有发现了另一种下载方式,使用Ti官方的软件LM Flash Programmer软件.但这个软件需要的是.bin文件,keil默认生成的 ...

  9. 【AngularJs学习笔记三】Grunt任务管理器

    为什么80%的码农都做不了架构师?>>>    #0 系列目录# AngularJs学习笔记 [AngularJs学习笔记一]Bower解决js的依赖管理 [AngularJs学习笔 ...

最新文章

  1. linux io函数,Linux下普通IO文件操作函数---C语言
  2. linux设备模型之Class
  3. 手贱随手在Linux敲了 as 命令,出不来了
  4. activemq的部署(三)
  5. [react] react中发起网络请求应该在哪个生命周期中进行?为什么?
  6. MySql (二)入门语句和基本操作
  7. IT Library第4期《备份域升为主域控制器》
  8. SAP MM采购仓储入门视频教程——适合新手入门学习
  9. FastDFS原理及入门
  10. 固态硬盘与机械硬盘数据迁移
  11. nyoj-1273 宣传墙
  12. Java入门概念回炉重造
  13. 3dsMax 修改为中文
  14. 上传文件- rz -be -y
  15. a标签中调用js的方法
  16. pandas数据分析给力教程【完整版】(五)
  17. carbonData使用文档
  18. JDK8 HashMap源码
  19. [Unity3D]Unity3D游戏开发之Unity与Android交互调用研究
  20. 生成Git ssh公钥和私钥(ppk)文件

热门文章

  1. ucosii 如何确定定时器的时间_全国中小学寒假时间确定,家长如何安排孩子们假期更合理?...
  2. 客户端序列码生成_Django REST Framework教程(2): 序列化器介绍及开发基于函数视图的API...
  3. pdf覆盖图片 Java_Java 添加、替换、删除PDF中的图片的示例代码
  4. linux取消设置环境变量,linux设置环境变量
  5. DSB2017第一名代码尝试运行(记录自用)(二)
  6. STB Reason: can‘t fopen
  7. ElasticSearch通过Scroll方式遍历索引(Python代码)
  8. 【转】深度解析 Qt 中动态链接库
  9. Eureka 微服务注册中心搭建
  10. IntelliJ IDEA配置与搭建web项目入门使用