[TOC] 1.exit()和_exit() 进程一般有两种退出方式,一种是异常终止,如调用abort(),另一种是使用exit()和_exit()系统调用正常终止。 由上图片可知,exit与_exit区别: 1)exit会执行调用退出处理程序 2)exit会执行清除I/O缓存 接下来分别对于上述两 ...
分类:
其他好文 时间:
2018-07-22 23:33:13
阅读次数:
238
Synchronizing Flows to Avoid Nasty Concurrency Bugs an example code: void handler(int sig) { pid_t pid; while ((pid = waitpid(-1, NULL, 0)) > 0) /* Re ...
分类:
其他好文 时间:
2018-07-08 13:25:08
阅读次数:
154
example codes: if (errno != ECHILD) unix_error("waitpid error");//Version 4 code in purple, same with version 2 if (errno != ECHILD) unix_error("waitp ...
分类:
其他好文 时间:
2018-07-07 22:36:45
阅读次数:
145
linux提供了一种机制可以保证只要父进程想知道子进程结束时的状态信息,就可以得到。这种机制就是:在每个进程退出的时候,内核释放该进程所有的资源,包括打开文件,占用的内存等。但是仍然为其保留一定的信息(包括进程号、退出状态、运行时间等)。直到父进程通过wait/waitpid来取诗才释放。 孤儿进程 ...
分类:
系统相关 时间:
2018-07-05 23:32:03
阅读次数:
218
首先先说说进程 1.进程产生 操作运行了一个程序,至少会产生一个进程 问题:进程与程序的区别?回答:程序就是一个编译好的可执行文件,而进程是操作系统为了执行一个程序而创建的,进程是程序的一次执行过程 二 进程相关的命令 1.ps -ef 查看进程的PID和PPID 2.ps aux 查看进程状态 R ...
分类:
其他好文 时间:
2018-07-05 13:29:12
阅读次数:
168
回收子进程 1 创建10个子进程,在46行正常结束,在55行对SIGCHLD信号进行捕获,捕获的过程的阻塞的,不会执行下面的代码,只有处理了我们指定的函数 才会继续执行下面的代码 2 我们的函数叫do_sig_chird,waitpid函数是对指定的进程进行回收(具体看_013_进程),第一个参数填 ...
分类:
系统相关 时间:
2018-06-19 16:23:48
阅读次数:
224
僵尸进程:一个子进程在其父进程还没有调用wait()或waitpid()的情况下退出。这个子进程就是僵尸进程。任何一个子进程(init除外)在exit()之后,并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构,等待父进程处理。这是每个 子进程在结束时都要经过的阶段。如果子进程在e ...
分类:
系统相关 时间:
2018-06-16 11:47:19
阅读次数:
176
26.1 system 函数 26.1.1 函数说明 system(执行shell 命令)相关函数 fork,execve,waitpid,popen 函数功能:简化 exec 函数 函数说明 system()会调用 fork() 产生子进程,由子进程来调用 /bin/sh -c string 来执 ...
分类:
系统相关 时间:
2018-06-08 23:17:21
阅读次数:
256
24.1 wait 函数说明 24.1.1 waitpid 等待子进程中断或结束 waitpid(等待子进程中断或结束) 相关函数 wait,fork 函数说明 waitpid() 会暂时停止目前进程的执行,直到有信号来到或子进程结束。 如果在调用 wait() 时子进程已经结束,则 wait()会 ...
分类:
系统相关 时间:
2018-06-08 00:51:23
阅读次数:
178
前情回顾:waitpid 创建二级子进程注意事项:先根据功能计划模块,确定技术点做好整体架构的设计模块的编写 》 模块的测试发现bug或者进行优化积累调试经验multiprocessing Process(name,target,args,kwargs) 》 进程对象pp.pid p.name p. ...
分类:
其他好文 时间:
2018-05-31 21:57:32
阅读次数:
178