unix
codinghonor
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
buffered, unbuffered, direct IO的区别
1、buffered IO buffered IO指的是在内核和用户程序之间设置了一层缓冲区,用来提高IO读写的效率; 当用户读取数据时,用户缓冲区已经将buffer读满,下次读时,可以直接从buffer中读,无需再经过内核和硬盘; 当用户写数据时,写入用户buffer区,定时将这段buffer的数据flush到硬盘上,减少向内核发送write命令的次数; - 读取:硬盘--->内核缓冲区原创 2015-04-25 18:18:58 · 3819 阅读 · 1 评论 -
解读条件变量
经常会遇到 “测试某个变量是否满足条件,才执行某个action” 这样的业务逻辑,一般而言,有两种方式来实现: 1、主动不断轮询,探测 while(!test_cond) { ... ... ; sleep(XX); } 2、被动通知 被动通知的一种实现:条件变量 调用pthread_cond_wait后,会探测是否满足条件,如果不满足,则把原创 2015-02-15 16:01:38 · 234 阅读 · 0 评论 -
pthread_atfork解读
apue中的对pthread_atfork的使用说明: pthread_atfork(void (*prepare)(void),void (*parent)(void), void(*child)(void)) prepare在父进程fork创建子进程之前调用,这里可以获取父进程定义的所有锁; child fork返回之前在子进程环境中调用,在这里unlock prepare获得的锁;原创 2015-02-11 20:09:10 · 6795 阅读 · 1 评论 -
文件描述符总结
总结几种常见情况下,打开文件后的数据结构: 1、一个进程打开两个不同的文件 2、同一个进程2次打开同一个文件 共享V节点,每个fd各自对应一个文件表项 3、dup后 共享文件表和v节点 4、fork后 子进程完全复制父进程的文件描述符列表,父子进程对应的fd共享文件表和v节点; 5、记录锁 多进程写同一个文件,需要加建议性/强制原创 2015-02-15 15:51:02 · 393 阅读 · 0 评论 -
判断进程是否存在的几种方法
一共有四种方法,见粗体。 注意受pid回收的影响,可能不准确; Checking for the Existence of a Process Verifying the existence of a particular process ID doesn’t guarantee that a par-ticular program is still running. Becaus原创 2015-02-15 17:13:57 · 1308 阅读 · 0 评论 -
前台进程,会话,控制终端,用户的关系
1、 一个会话和一个控制终端一一对应 2、 一个控制终端对应一个前台进程组 3、一个会话拥有一个前台进程组和若干后台进程组 4、 会话中的所有进程都对应同一个控制终端 5、 只有前台进程可以read write控制终端 6、 控制终端收到一些特殊的信号字符,会发送相应的信号给前台进程组的进程 7、 控制终端退出或者控制进程的退出,会发送sighup信原创 2015-02-15 16:57:24 · 897 阅读 · 0 评论
分享