Unix/Linux
UNIX相关书籍阅读笔记,包括《UNIX环境高级编程》
BrianLeeLXT
这个作者很懒,什么都没留下…
展开
-
《UNIX环境高级编程》(APUE) 笔记系列
本系列笔记主要是对于 《UNIX环境高级编程》(APUE) 各章节内容 概念性的总结 ,不涉及代码解读 。目录为:第一章 UNIX基础知识第二章 UNIX标准及实现第三章 文件I/O第四章 文件和目录第五章 标准I/O库第六章 系统数据文件和信息第七章 进程环境第八章 进程控制第九章 进程关系第十章 信号第十一章 线程第十二章 线程控制第十三章 守护进程第十四章 高级I/O第十五章 进程间通信第十六章 网络IPC:套接字第十七章 高级进程间通信第十八章 终端I/O第十原创 2020-05-19 17:21:26 · 434 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第十七章 - 高级进程间通信
Github 地址17 - 高级进程间通信1. UNIX 域套接字UNIX 域套接字 用于在同一台计算机上运行的进程之间的通信 ,它可以在同一计算机系统上运行的两个进程之间传送打开的文件描述符 。UNIX 域套接字 仅仅 复制数据 ,它们并不执行协议处理,不需要添加或删除网络报头,无需计算校验和,不要产生顺序号,无需发送确认报文 。所以比 因特网域套接字 效率更高 。UNIX 域套接字 提供流和数据报两种接口 。UNIX 域数据报服务 是可靠的,既不会丢失报文,也不会传递出错 。UNIX 域套原创 2020-05-19 09:05:40 · 399 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第十六章 - 网络IPC:套接字
Github 地址16 - 网络IPC:套接字1. 网络 IPC经典进程间通信机制 ( IPC ):管道、FIFO 、消息队列、信号量和共享存储,允许在同一台计算机上运行的进程之间通信 。网络进程间通信 是不同计算机(通过网络连接)上的进程相互通信的机制 。(也可用于计算机内通信)2. 套接字描述符套接字 是通信端点的抽象,应用程序用 套接字描述符 访问套接字 。套接字描述符在 UNIX 系统中被当作是一种文件描述符 。使用 socket 函数 创建 一个套接字:#include <原创 2020-05-18 12:55:29 · 399 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第十五章 - 进程间通信
15 - 进程间通信1. 进程间通信进程间通信 (IPC) 是进程之间相互通信的技术:前十种 IPC 形式通常限于同一台主机的两个进程之间的 IPC ,最后两行( 套接字和 STREAMS )是仅有的支持不同主机上两个进程之间的 IPC 的两种形式 。2. 管道2.1 管道概念管道 是 UNIX 系统 IPC 的最古老形式 。管道的两种 局限性:有的系统仅提供半双工通道管道只能在具有公共祖先的两个进程之间使用 。通常,一个管道由一个进程创建,在进程调用 fork 之后,这个管道就能在父原创 2020-05-17 01:33:24 · 637 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第十四章 - 高级I/O
Github 地址14 - 高级I/O1. 非阻塞 IO非阻塞 I/O 使我们可以发出 open 、read 和 write 这样的 I/O 操作,并使这些操作不会永远阻塞。如果这种操作不能完成,则调用立即出错返回,表示该操作如继续执行将阻塞 。对于一个给定的描述符,有两种为其指定 非阻塞 I/O 的方法:如果调用 open 获得描述符,则可指定 O_NONBLOCK 标志对于已经打开的一个描述符,则可调用 fcntl ,由该函数打开 O_NONBLOCK 文件状态标志2. 记录锁记录原创 2020-05-14 21:10:25 · 425 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第十三章 - 守护进程
Github 地址13 - 守护进程1. 守护进程守护进程 (daemoon) 是生存期长的一种进程。常常在系统引导装入时启动,仅在系统关闭时才终止。它们是在后台运行的,没有控制终端。UNIX 有很多守护进程,它们执行 日常事务活动 。2. 守护进程的特征内合进程:父进程 ID 为 000 的各进程通常是内核进程,它们作为系统引导装入的一部分而启动 。内核守护进程:对于需要在进程上下文执行工作但却不被用户层进程上下文调用的每一个内核组件,通常有它的内核守护进程 。init 进程:是一个 系统原创 2020-05-12 13:14:47 · 403 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第十二章 - 线程控制
Github 地址12 - 线程控制1. 线程限制下图为与 线程操作 有关的一些 限制:]可以通过 sysconf 函数进行查询 。2. 线程属性可使用 pthread_attr_t 结构修改线程默认属性,并把这些属性与创建的线程联系起来。初始化 和 反初始化:#include <pthread.h>int pthread_attr_init(pthread_attr_t *attr);int pthread_attr_destroy(pthead_attr_t *att原创 2020-05-11 18:31:49 · 362 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第十一章 - 线程
Github 地址11 - 线程1. 线程概念典型的 UNIX进程 可以看成只有一个 控制线程 :一个进程在某一时刻只能做一件事情。有了 多个控制线程 ,就可以把进程设计成在某一时刻能够做不止一件事,每个线程处理各自独立的任务。每个线程都包含有表示执行环境所必需的信息:进程中表示线程的 线程 ID一组寄存器值栈调度优先级和策略信号屏蔽字errno 变量线程私有数据一个进程所有信息对该进程的所有线程都是共享的:可执行程序的代码程序的全局内存和堆内存栈文件描述符线程的原创 2020-05-09 15:58:09 · 470 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第十章 - 信号
Github 地址10 - 信号1. 信号信号是 软中断 ,信号提供了一种处理异步事件的方法。当造成信号的事件发生时,为进程 产生 一个信号(或向进程 发送 一个信号)。事件 可以是硬件异常(如除以 000)、软件条件(如alarm定时器超时)、终端产生的信号或调用 kill 函数。每个信号都有一个名字,以 333 个字符 SIG 开头,定义在头文件 <signal.h> ...原创 2020-05-08 13:20:29 · 637 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第九章 - 进程关系
Github地址9 - 进程关系1. 进程组每个进程除了有一个 进程 ID 外,还属于一个 进程组 。进程组是一个或多个进程的 集合 ,通常,它们是在同一作业中结合起来的,同一进程组中的各进程接受来自同一终端的各种信号。每一个进程组有一个唯一的 进程组 ID 。函数 getpgrp 返回调用进程的进程组 ID:#include <unistd.h>pid_t getpgr...原创 2020-05-07 13:25:53 · 359 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第八章 - 进程控制
Github地址8 - 进程控制1. 进程标识每个进程都有一个非负整型表示的 唯一进程 ID 。进程 ID 是可复用的(延迟复用算法)。ID 为 000 的进程通常是调度进程,常常被称为 交换进程 (swapper) 。该进程是内核的一部分,它并不执行任何磁盘上的程序,因此也被称为 系统进程 。ID 为 111 通常是 init 进程,负责在自举内核后启动一个 UNIX 系统。init...原创 2020-05-06 13:39:09 · 390 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第七章 - 进程环境
Github 地址7 - 进程环境1. main 函数C 程序总是从 main 函数 开始执行:int main(int argc, char *argv[]);argcargcargc 为命令行参数的数目,argvargvargv 是指向参数各个指针所构成的数组。内核使用一个 exec 函数 执行 C 程序,在调用 main 前先调用一个特殊的启动例程。可执行程序文件将此例程指定...原创 2020-05-05 13:32:02 · 325 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第五章 - 标准I/O库
Github5 - 标准I/O库1. 标准 I/O 库作用缓冲区分配以优化的块长度执行 I/O 等使用户不必担心如何选择使用正确的块长度标准 I/O 最终都要调用第三章中的 I/O 例程 。2. 流和 FIFE 对象当用 标准 I/O 库打开或创建一个文件时,使一个 流 与一个文件相关联。(类比于文件 I/O 和文件描述符)标准 I/O 文件流可用于单字节或多字节(“宽”)...原创 2020-05-04 14:53:38 · 352 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第四章 - 文件和目录
Github地址4 - 文件和目录1. 函数 stat、fstat、fstatat 和 lstat#inlcude <sys/stat.h>int stat(const char *restrict pathname, struct stat *restrict buf);int fstat(int fd, struct stat *buf);int lstat(cons...原创 2020-05-02 14:38:46 · 484 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第三章 - 文件I/O
Github地址3 - 文件I/O1. 文件描述符对于内核而言,所有打开的文件都通过 文件描述符 (file descriptor) 引用。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时,使用 open 或 creat 返回的文件描述符标识该文件,将其作为参数传送给 read 或者 write 。UNIX系统shell把 文件描述符 000 与进程...原创 2020-04-30 19:01:30 · 391 阅读 · 0 评论 -
《UNIX环境高级编程》(APUE) 笔记第一章 - UNIX基础知识
Github地址 :https://github.com/XutongLi/CPP_LEARN/blob/master/APUE/1-UNIX%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.md1 - UNIX基础知识1. 操作系统可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。通常将这种软件称为 内核 (kernel) 。( Linux 是...原创 2020-04-29 18:45:40 · 388 阅读 · 0 评论