摘要: 这一章核心内容:使用 UNIX 域套接字传送文件描述符。 文件描述符的传送以来 cmsghdr 结构体。具体直接看书上源码。 阅读全文
posted @ 2017-05-29 20:49 mfmans 阅读(160) 评论(0) 推荐(0) 编辑
摘要: #define AF_UNSPEC PF_UNSPEC #define AF_LOCAL PF_LOCAL #define AF_UNIX PF_UNIX #define AF_INET PF_INET #define AF_INET6 PF_INET6 enum __socket_type { SOCK_STREAM = 1, /* Sequenced, reliable, con... 阅读全文
posted @ 2017-05-29 11:50 mfmans 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 管道 半双工。一般由父进程创建,用于父子进程间、子进程间通信。匿名,一对一。 简单执行命令行,并读写标准输入输出。 FIFO(命名管道) 用法:服务端创建一个 FIFO,其它任何进程都可以向其写入数据,服务端读到数据后处理。可以一读多写。写数据的大小小于 PIPE_BUF 时为原子操作。 类似文件操 阅读全文
posted @ 2017-05-28 17:56 mfmans 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 非阻塞I/O 调用 fcntl() 设置文件描述符 O_NONBLOCK 标志,调用 read() 和 write() 不再阻塞,有可能会返回 -1 并设置 errno 为 EAGAIN。 记录锁(字节锁) 用于锁住文件的某一部分,支持读锁和写锁。由于锁信息 lockf_entry 和 v-node 阅读全文
posted @ 2017-05-27 21:28 mfmans 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 写入日志: 阅读全文
posted @ 2017-05-26 22:26 mfmans 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 线程标识 创建、退出、等待、取消线程 线程属性 可重入和线程安全 线程安全:多个线程可以同时的、安全的调用同一个函数 重入:例如 main() 调用 malloc() 时产生信号,中断原有流程,进入信号处理函数,信号处理函数中再次调用 malloc(),称为重入。从栈帧上说,malloc() 出现了 阅读全文
posted @ 2017-05-26 13:40 mfmans 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 信号是系统用来异步通知一个进程某些事件发生了的机制。从效果上来说,有点像中断。信号发生时,打断原有执行过程,进入信号处理函数(如果注册了的话)或默认处理(忽略或终止程序),结束后恢复原有流程。默认情况下,信号处理过程中可能会被其它信号继续中断,所以需要考虑各种可能的情况,比如库函数重入的问题。信号处 阅读全文
posted @ 2017-05-25 23:13 mfmans 阅读(162) 评论(0) 推荐(0) 编辑
摘要: C程序布局 在文件中:正文段(机器指令) text,初始化数据段 data,未初始化数据段 bss 在内存中:(低地址)text,data,bss,堆(向高地址生长)……(向低地址生长)栈,命令行参数,环境变量(高地址) 环境变量 退出程序 setjmp()和longjmp() 进程标识 fork( 阅读全文
posted @ 2017-05-24 00:27 mfmans 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 设置缓冲: 流和文件描述符: 内存流: 阅读全文
posted @ 2017-05-21 17:32 mfmans 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 文件权限有: 文件类型有: 设置用户ID和设置组ID: 实际用户ID、实际组ID,表示实际是谁 有效用户ID、有效组ID、附属组ID,用于文件权限检查,执行设置了set-user-ID和set-group-ID位的文件时该进程有效ID不等于实际ID 保存的设置用户ID、保存的设置组ID 新文件和新目 阅读全文
posted @ 2017-05-21 16:25 mfmans 阅读(69) 评论(0) 推荐(0) 编辑