管道 半双工。一般由父进程创建,用于父子进程间、子进程间通信。匿名,一对一。 简单执行命令行,并读写标准输入输出。 FIFO(命名管道) 用法:服务端创建一个 FIFO,其它任何进程都可以向其写入数据,服务端读到数据后处理。可以一读多写。写数据的大小小于 PIPE_BUF 时为原子操作。 类似文件操 ...
分类:
系统相关 时间:
2017-05-28 18:49:46
阅读次数:
254
非阻塞I/O 调用 fcntl() 设置文件描述符 O_NONBLOCK 标志,调用 read() 和 write() 不再阻塞,有可能会返回 -1 并设置 errno 为 EAGAIN。 记录锁(字节锁) 用于锁住文件的某一部分,支持读锁和写锁。由于锁信息 lockf_entry 和 v-node ...
分类:
其他好文 时间:
2017-05-27 21:51:10
阅读次数:
230
线程标识 创建、退出、等待、取消线程 线程属性 可重入和线程安全 线程安全:多个线程可以同时的、安全的调用同一个函数 重入:例如 main() 调用 malloc() 时产生信号,中断原有流程,进入信号处理函数,信号处理函数中再次调用 malloc(),称为重入。从栈帧上说,malloc() 出现了 ...
分类:
编程语言 时间:
2017-05-26 14:34:27
阅读次数:
198
信号是系统用来异步通知一个进程某些事件发生了的机制。从效果上来说,有点像中断。信号发生时,打断原有执行过程,进入信号处理函数(如果注册了的话)或默认处理(忽略或终止程序),结束后恢复原有流程。默认情况下,信号处理过程中可能会被其它信号继续中断,所以需要考虑各种可能的情况,比如库函数重入的问题。信号处 ...
分类:
其他好文 时间:
2017-05-26 00:42:13
阅读次数:
245
文件权限有: 文件类型有: 设置用户ID和设置组ID: 实际用户ID、实际组ID,表示实际是谁 有效用户ID、有效组ID、附属组ID,用于文件权限检查,执行设置了set-user-ID和set-group-ID位的文件时该进程有效ID不等于实际ID 保存的设置用户ID、保存的设置组ID 新文件和新目 ...
分类:
其他好文 时间:
2017-05-21 17:50:05
阅读次数:
122
标准流描述符: 打开、创建、关闭文件: 移动指针: 读写(注意原子操作): 文件共享: 刷新内部缓冲: fcntl()和ioctl(): /dev/fd: 每个进程看到的都不一样,例如: 习题3.2 自己实现一个dup2(): 习题3.3 考虑下边代码,显然 fd1 和 fd2 指向同一个 vnod ...
分类:
其他好文 时间:
2017-05-21 12:54:28
阅读次数:
182
代码源自APUE 直接输出到屏幕与重定向到文件的输出内容有差别 "before fork!\n"字符串在重定向到文件时会输出两次,一次是父进程的输出,一次是子进程的输出。这是在最后的退出调用exit(0)标准库函数的情况下 在通过系统调用_exit(0)退出进程的时候,标准输出的内容(通过print ...
分类:
其他好文 时间:
2017-05-16 12:56:38
阅读次数:
167
本文转载自:http://blog.csdn.net/hadas_wang/article/details/43203795 1. 下载代码:http://www.apuebook.com/code3e.html 2. 安装依赖库:sudo apt-get install libbsd-dev 3. ...
分类:
系统相关 时间:
2017-05-06 11:56:09
阅读次数:
262