孤儿进程与僵尸进程[总结]1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,....
分类:
系统相关 时间:
2014-10-24 20:41:48
阅读次数:
284
本章主要介绍了线程,了解如何使用多线程在单进程环境中来执行多任务。由于多个线程共享其进程空间,所以必须采用同步的机制来保护数据的一致性。一.线程的概念 典型的Unix系统都可以看成只有一个控制线程,一个进程在同一时刻只能做一件事。但有了多线程,我们可以设计成在同一时刻进程能做不止一件事,每个...
分类:
编程语言 时间:
2014-10-24 12:29:52
阅读次数:
235
多路I/O转接与select函数不同,poll不是为每个状态(可读性、可写性和异常状态)构造一个描述符集,而是构造一个pollfd结构数组,每个数组元素指定一个描述符编号以及其所关心的状态readv和writev函数作用:在一次函数调用中读、写多个非连续缓存区总结:应当用尽量少的系统调用..
分类:
其他好文 时间:
2014-10-23 12:51:18
阅读次数:
203
非阻塞IO是相对于传统的阻塞IO而言的。 我们首先需要搞清楚,什么是阻塞IO。APUE指出,系统调用分为两类,低速系统调用和其他,其中低速系统调用是可能会使进程永远阻塞的一类系统调用。但是与磁盘IO有关的系统调用是个例外。 我们以read和write为例,read函数读取stdin,如果是阻塞IO,...
分类:
系统相关 时间:
2014-10-23 12:11:41
阅读次数:
259
前段时间看了下APUE关于多线程的部分,讲Linux的多线程是通过clone的系统调用实现的,针对这点进行验证发现并非如此,确切说是版本大于2.6的是这样的。#include #include void prid(const char *name){ pid_t pid; ...
分类:
编程语言 时间:
2014-10-22 19:56:04
阅读次数:
285
参考文章:http://blog.csdn.net/andyxie407/article/details/1672325今天在运行在APUE第16章的16-14(客户端)和16-15(服务端)遇到了不少问题,搞了半天,运行方法多谢andyxie407的文章给了很好地参考(本来就一样,不叫参考),后面...
分类:
其他好文 时间:
2014-10-21 00:52:38
阅读次数:
170
文件描述符:进程通过文件描述符来操作文件,文件描述符可以通过open, openat, creat系统调用返回;shell和其他应用默认打开标准输入(STDIN_FILENO),标准输出(STDOUT_FILENO),标准错误(STDERR_FILENO)三个文件描述符。open和openat函数:...
分类:
其他好文 时间:
2014-10-20 22:49:24
阅读次数:
279
大多数UNIX应用程序都使用I/O库,本章说明了该库所包含的所有函数,以及某些实现细节和效率方面的考虑。同时需要重点关注标准I/O使用了缓冲的技术,但同时也是因为它的出现,产生了很多细节上的问题.流和FILE对象 unix系统调用的函数都是针对文件描述符操作的.而标准I/O库,它们的操作则是围...
分类:
其他好文 时间:
2014-10-19 18:31:13
阅读次数:
206
话不多说,请看:我的项目有的目录结构有:dirls/├── include│ └── apue.h├── lib│ ├── error.c│ ├── error.o│ └── Makefile├── src│ ├── dirls.c│ ├── dirls.out│ └── Makefile└── t...
分类:
其他好文 时间:
2014-10-19 11:32:37
阅读次数:
175
最近在看APUE附带的源码时,看到它的错误处理文件中用到了可变参数列表(如下),正好最近老是看到这几个函数在眼前晃悠,所以就做个了断吧。哈哈。#include "apue.h"#include /* for definition of errno */#include /* ISO C ...
分类:
编程语言 时间:
2014-10-13 22:34:17
阅读次数:
269