博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
APUE 学习笔记(三) 文件和目录
阅读量:5156 次
发布时间:2019-06-13

本文共 891 字,大约阅读时间需要 2 分钟。

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.目录操作

opendirreaddirseekdirclosedirmkdirrmdir

 

 

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

你可能感兴趣的文章
【Luogu】P1607庙会班车Fair Shuttle(线段树+贪心)
查看>>
crash reporting system for Windows applications
查看>>
系统启动正常,进入桌面时黑屏,可以看到鼠标
查看>>
随意谈谈tcp
查看>>
进制转换
查看>>
Linux 下五个顶级的开源命令行 Shell
查看>>
Linux平台中使用PHP让word转pdf
查看>>
03循环结构
查看>>
docker数据卷的使用 -v --volumes--from
查看>>
电磁兼容培训文稿
查看>>
初始化 静态代码块1
查看>>
shell 实现txt转换成html
查看>>
sqlserver 2008修改数据库表的时候错误提示“阻止保存要求重新创建表的更改”...
查看>>
53. (待补) (使用单链表)实现简单的管理系统 MVC 将链表作为内存数据模型,将文件作为数据库,将终端作为交互界面。读文件生成 链表,修改链表写入文件。...
查看>>
【JZOJ4811】【NOIP2016提高A组五校联考1】排队
查看>>
SqlServer数据组织结构
查看>>
HTMLTESTRunner自动化测试报告增加截图功能
查看>>
自定义注解判空简单示例
查看>>
squid,nginx,lighttpd反向代理的区别
查看>>
利用 Apache 为个人用户创建 web 站点及其报错处理
查看>>