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

时间: 2024-08-26 23:33:08

APUE 学习笔记(三) 文件和目录的相关文章

Linux 程序设计学习笔记----POSIX 文件及目录管理

转载请注明:http://blog.csdn.net/suool/article/details/38141047 问题引入 文件流和文件描述符的区别 上节讲到ANSI C 库函数的实现在用户态,流的相应资源也在用户空间,但无论如何实现最终都需要通过内核实现对文件的读写控制.因此fopen函数必然调用了对OS的系统调用.这一调用在LINUX下即为open, close, read, write等函数.这些都遵循POSIX标准. so,在linux系统中是如何通过POSIX标准实现对文件的操作和目

python学习笔记九——文件与目录

1.python进行文件读写的函数是open或file类 mode:r  只读 r+   读写 w  写入,先删除原文件,再重新写入,如果文件没有则创建 w+  读写,先删除原文件,再重新写入,如果文件没有则创建(可写入和输出) a  写入,在文件末尾追加新的内容,文件不存在则创建 a+  读写,在文件末尾追加新的内容,文件不存在则创建 b  打开二进制文件,可与r,w,a,+结合使用 U  支持所有的换行符号,"\r","\n","\r\n"

APUE 学习笔记(二) 文件I/O

1. 文件I/O 对于内核而言,所有打开的文件都通过文件描述符引用,内核不区分文本文件和二进制文件 open函数:O_RDONLY  O_WRONLY  O_RDWR create函数: close函数:关闭一个文件时还会释放该进程加在该文件上的所有记录锁 lseek函数:显式地为一个打开的文件设置其偏移量 每个打开的文件都有一个与其相关联的 "当前文件偏移量",用以度量从文件开始处计算的字节数,通常,读.写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数 文件偏移量可以大于

Linux System Programming 学习笔记(八) 文件和目录管理

1. 文件和元数据 每个文件都是通过inode引用,每个inode索引节点都具有文件系统中唯一的inode number 一个inode索引节点是存储在Linux文件系统的磁盘介质上的物理对象,也是LInux内核通过数据结构表示的实体 inode存储相关联文件的元数据 ls -i 命令获取文件的inode number /* obtaining the metadata of a file */ #include <sys/types.h> #include <sys/stat.h>

CentOS学习笔记--基本命令--文件与目录管理

Linux基本命令--文件与目录管理 本节节选自鸟哥的 Linux 私房菜 -- 基础学习篇目录  第七章.Linux 文件与目录管理  ls(文件与目录的检视) ls命令就是list的缩写,ls可以说是最常用命令,因为我们随时都要知道文件或者是目录的相关属性. [[email protected] ~]# ls [-aAdfFhilnrRSt] 目录名称 [[email protected] ~]# ls [--color={never,auto,always}] 目录名称 [[email p

linux学习笔记之 文件和目录管理

这里列这些常用的命令提醒一下自己,免得老是会忘记那么几个 cd pwd mkdir rmdir ls mv cp rm cat tac nl more less head tail od ls -l file                    <==显示的是默认的mtimels --time={ctime|atime] file  <==显示指定的时间类型ls --full-time                <==显示完整的时间 mtime mtime(modification

linux云计算集群架构学习笔记: 1-2 文件的目录结构

文件的基本管理和XFS文件系统备份恢复 1.1  Linux系统目录结构,相对/绝对路径. 1.2  创建/复制/删除文件,rm -rf / 意外事故 1.3 查看文件内容 1.4 xfs文件系统的备份和恢复 在windows中文件在磁盘里如上图, 而在Linux当中一切都是文件,没有磁盘的概念了,这是 linux与windows的不同,设备也看成文件 1.1.1  linux系统目录结构 /   /home   /root   /dev   /usr   /etc   /boot   /lib

python学习笔记 操作文件和目录

如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数. 打开Python交互式命令行,我们来看看如何使用os模块的基本功能: >>> import os >>> os.name # 操作系统类型 'posix' 如果是posix,说明系统是L

python学习笔记(三):文件操作和集合

这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 寂寞当然有一点 你不在我身边 总是特别想念你的脸 距离是一份考卷 测量