导航

2012年1月13日

摘要: 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait 就会收集这个子进程的信息, 并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。如果该进程没有子进程,则立即出错返回,返回值为-1(注意,是wait()函数立即返回,而不是说该父进程也跟着结束了,父进程里该语句后的内容还是要照样接着执行的)wait(等待子进程中断或结束)相关函数 waitpid,fork表头文件#include<sys/types.h>#include<sys/wait 阅读全文

posted @ 2012-01-13 21:29 网名还没想好 阅读(353) 评论(0) 推荐(1) 编辑

摘要: 一般是fork出子进程的父进程已经结束,子进程无法释放资源,形成了僵尸进程.进程已经死亡,但没有释放系统资源,包括内存和一些系统表等,如果这样的进程很多,会引发系统问题。用ps -el看出的进程状态如果是Z,就是僵尸进程。 S代表休眠状态;D代表不可中断的休眠状态;R代表运行状态;Z代表僵死状态;T代表停止或跟踪状态。 僵尸进程是指的父进程已经退出,而该进程dead之后没有进程接受,就成为僵尸进程.(zombie)进程怎样产生僵尸进程的:一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是使. 阅读全文

posted @ 2012-01-13 20:50 网名还没想好 阅读(1580) 评论(0) 推荐(0) 编辑

摘要: C语言操作符优先级优先级运算符含 义要求运算对象的个数结合方向1()[]->.圆括号下标运算符指向结构体成员运算符结构体成员运算符自左至右2!逻辑非运算符1(单目运算符)自右至左~按位取反运算符++自增运算符--自减运算符-负号运算符(类型)类型转换运算符*指针运算符&地址与运算符sizeof长度运算符3*/%乘法运算符除法运算符求余运算符2(双目运算符)自左至右4+-加法运算符减法运算符2(双目运算符)自左至右5<<>>左移运算符右移运算符2(双目运算符)6<<=>>=关系运算符2(双目运算符)自左至右7==!=等于运算符不等于运 阅读全文

posted @ 2012-01-13 19:36 网名还没想好 阅读(577) 评论(0) 推荐(0) 编辑

摘要: int main(int argc,char * argv[])argv为指针的指针argc为整数char **argv or: char *argv[] or: char argv[][]main()括号内是固定的写法。下面给出一个例子来理解这两个参数的用法:假设程序的名称为prog,当只输入prog,则由操作系统传来的参数为:argc=1,表示只有一程序名称。argc只有一个元素,argv[0]指向输入的程序路径及名称:./prog当输入progpara_1,有一个参数,则由操作系统传来的参数为:argc=2,表示除了程序名外还有一个参数。argv[0]指向输入的程序路径及名称。argv[ 阅读全文

posted @ 2012-01-13 14:02 网名还没想好 阅读(548) 评论(0) 推荐(1) 编辑

摘要: int main(int argc,char * argv[])argv为指针的指针argc为整数char **argv or: char *argv[] or: char argv[][]main()括号内是固定的写法。下面给出一个例子来理解这两个参数的用法:假设程序的名称为prog,当只输入prog,则由操作系统传来的参数为:argc=1,表示只有一程序名称。argc只有一个元素,argv[0]指向输入的程序路径及名称:./prog当输入progpara_1,有一个参数,则由操作系统传来的参数为:argc=2,表示除了程序名外还有一个参数。argv[0]指向输入的程序路径及名称。argv[ 阅读全文

posted @ 2012-01-13 12:25 网名还没想好 阅读(128) 评论(0) 推荐(0) 编辑