上一页 1 ··· 42 43 44 45 46 47 48 49 50 ··· 81 下一页
摘要: 14.7 单根目录节点及挂载点 与其他 UNIX 系统一样, Linux 上所有文件系统中的文件都位于单根目录树下,树根就是根目录“ /”。其他的文件系统都挂载在根目录之下,被视为整个目录层级的子树( subtree)。 超级用户可使用如下命令来挂载文件系统: mount device diriec 阅读全文
posted @ 2021-04-12 13:50 Mars.wang 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 文件系统是对文件和目录的组织集合,本章的绝大多数内容都与文件系统相关。本章会解释一系列与文件系统有关的概念,举例时将采用传统的 Linux ext2 文件系统。此外,本章还会简要介绍一些 Linux 支持的日志文件系统。 在本章结尾,将会讨论用于挂载( mount)和卸载( unmount)文件系统 阅读全文
posted @ 2021-04-12 11:30 Mars.wang 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 十九、监控文件事件 某些应用程序需要对文件或目录进行监控,已侦测其是否发生了特定事件。例如,当把文件加入或移出一目录时,图形化文件管理器应能判定此目录是否在其当前显示之列,而守护进程可能也想要监控自己的配置文件,以了解其是否被修改 自内核 2.6.13 起, Linux 开始提供 inotify 机 阅读全文
posted @ 2021-04-12 10:25 Mars.wang 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 管道为一个常见需求提供了一个优雅的解决方案:给定两个运行不同程序(命令)的进程,在 shell 中如何让一个进程的输出作为另一个进程的输入呢?管道可以用来在相关进程之间传递数据 FIFO 是管道概念的一个变体,它们之间的一个重要差别在于 FIFO 可以用于任意进程间的通信 44.1 概述 ls | 阅读全文
posted @ 2021-04-09 14:26 Mars.wang 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 四十三、进程间通信简介 43.1 ipc工具分类 UNIX 系统上各种通信和同步工具,根据功能将它们分成了三类。 通信:这些工具关注进程之间的数据交换。 同步:这些进程关注进程和线程操作之间的同步。 信号:尽管信号的主要作用并不在此,但在特定场景下仍然可以将它作为一种同步技术。更罕见的是信号还可以作 阅读全文
posted @ 2021-04-09 11:44 Mars.wang 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 五、深入探究文件IO 5.1 原子操作与竞争条件 所有系统调用都是以原子操作方式执行的。之所以这么说,是指内核保证了某系统调用中的所有步骤会作为独立操作而一次性加以执行,其间不会为其他进程或线程所中断。 原子性是某些操作得以圆满成功的关键所在。特别是它规避了竞争状态。竞争状态是这样一种情形:操作共享 阅读全文
posted @ 2021-04-08 14:40 Mars.wang 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 4.4 读取文件内容:read() ssize_t read(int fd,void *buffer,size_t count) count 参数指定最多能读取的字节数。 buffer 参数提供用来存放输入数据的内存缓冲区地址。缓冲区至少应有 count 个字节。 如果 read()调用成功,将返回 阅读全文
posted @ 2021-04-07 16:21 Mars.wang 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 4.2 通用IO UNIX I/O 模型的显著特点之一是其输入/输出的通用性概念。这意味着使用 4 个同样的系统调用 open()、 read()、 write()和 close()可以对所有类型的文件执行 I/O 操作,包括终端之类的设备。 4.3 打开一个文件:open() open()调用既能 阅读全文
posted @ 2021-04-07 16:15 Mars.wang 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 4.1 概述 所有执行 I/O 操作的系统调用都以文件描述符,一个非负整数(通常是小整数),来指代打开的文件。文件描述符用以表示所有类型的已打开文件,包括管道(pipe)、 FIFO、 socket、终端、设备和普通文件。针对每个进程,文件描述符都自成一套。 执行文件 I/O 操作的 4 个主要系统 阅读全文
posted @ 2021-04-07 13:54 Mars.wang 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 三、系统编程概念 无论何时,只要执行了系统调用或者库函数,检查调用的返回状态以确定调用是否成功,这是一条编程铁律 3.1 系统调用 系统调用是受控的内核入口,借助于这一机制,进程可以请求内核以自己的名义去执行某些动作。 以应用程序编程接口(API)的形式,内核提供有一系列服务供程序访问。这包括创建新 阅读全文
posted @ 2021-04-06 15:12 Mars.wang 阅读(174) 评论(0) 推荐(0) 编辑
上一页 1 ··· 42 43 44 45 46 47 48 49 50 ··· 81 下一页