创建进程
函数名:fork
函数原型:pid_t fork(void);
函数功能:创建一个子进程
头文件;
返回值:成功:在父进程中返回子进程的pid,在子进程中返回0 失败:-1
#include
void main()
{
fork();
printf("program is end\n");
exit(0);
}
运行结果:program is end...
分类:
系统相关 时间:
2015-04-21 11:24:02
阅读次数:
145
5 wait和waitpid函数 当一个进程正常或异常终止时,内核就向其父进程发送SIGCHLD信号。5.1调用wait或waitpid的进程可能会: 阻塞(如果其子进程都还在运行) 带子进程的终止状态立即返回 出错立即返回5.2wait和waitpid的区别: 在一个子...
分类:
系统相关 时间:
2015-04-20 11:03:28
阅读次数:
192
一、简述进程是加载到内存中的指令集,进程有进程ID加以标示。在Linux内核中,进程是由task_struct结构表示和管理的。每执行一个程序都会调用父进程init的fork系统调用创建一个子进程。1,进程分类:(1)不同模式运行内核模式(ring0)用户模式(ring3)进程有时会访问外部的硬..
分类:
系统相关 时间:
2015-04-20 09:44:42
阅读次数:
289
文章结构:进程结构fork函数示例代码frok使用场景进程结构 Linux下一个进程在内存里有三部分的数据,就是”代码段”、”堆栈段”和”数据段”。接触过汇编语言的人了解,一般的CPU都有上述三种段寄存器,以方便操作系统的运行。这三个部分也是构成一个完整的执行序列的必要的部分。 “代码段”,顾名思义,就是存放了程序代码的数据,如果机器中有数个进程运行相同的一个程序,那么它们就可以使用相同的代码...
分类:
编程语言 时间:
2015-04-20 09:26:51
阅读次数:
248
文章结构:wait能力介绍wait()函数讲解示例代码及操作演示wait能力介绍 在上一篇【C/C++】多进程:子进程的创建fork()中演示了子进程的创建。 创建子进程后,父进程具有监听子进程的运行状态的能力,用到的函数为: #include
pid_t wait(int *status);
pid_t waitpid(pid_t pid, int *status, in...
分类:
编程语言 时间:
2015-04-20 09:25:58
阅读次数:
577
一个僵尸进程产生的过程是:父进程调用fork创建子进程后,子进程运行至其终止。进程终止后有些信息对于父进程和内核还是很有用的,例如进程的ID号、进程的退出状态、进程运行的CPU时间等。因此进程运行终止后,系统会回收所有内核分配给它的内存、关闭它所打开的文件等,但是还会保留以上极少的信息,以供父进程使用,系统会向父进程发送SIGCHLD信号,父进程应及时调用wait函数来为子进程收尸,做一些收尾工作...
分类:
编程语言 时间:
2015-04-20 09:25:58
阅读次数:
193
文章结构:wait()的阻塞问题signal()函数讲解示例代码wait()的阻塞问题 之前的多进程:父进程监听子进程状态 wait()的使用文章中,父进程为了获取子进程的SIGSTOP、SIGTERM等信号时,由于调用了wait而导致主进程一直阻塞。在实际的开发中,主进程在等待子进程状态变化时还会有其它的事情要去执行,所以需要一种异步回调机制,让主进程可以在执行其它任务的时候,又可以监听到子进...
分类:
编程语言 时间:
2015-04-20 09:25:23
阅读次数:
457
联系区别
问题的引出,当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一个描述符上面,另外的描述符虽然有数据但是不能读出来,这样实时性不能满足要求,大概的解决方案有以下几种:
1.使用多进程或者多线程,但是这种方法会造成程序的复杂,而且对与进程与线程的创建维护也需要很多的开销。(Apache服务器是用的子进程的方式,优点可以隔离用户)
2.用一个进程,但是使用非...
分类:
其他好文 时间:
2015-04-19 17:59:49
阅读次数:
100
前言:感谢您浏览该博客文章,如有任何的疑问或者意见欢迎通过邮件进行交流,提供linux技术支持。本人是Linux的布道者。邮箱:linuxstorm@126.comclone()创建轻量级子进程,那么父进程是哪个函数创建的详解:实际上linux系统都是调用clone()创建进程,但是init0和init1是内..
分类:
系统相关 时间:
2015-04-19 06:43:11
阅读次数:
148
进程的概念进程是系统进行资源分配的基本单位,当一个应用程序启动时就向内核发起请求,然后由进程创建出新的进程,此时应用程序就启动了。创建进程的进程此时被称作父进程,而被创建出来的进程被称为子进程,此外子进程不可脱离父进程而存在,当一个父进程被销毁时,其子进程..
分类:
系统相关 时间:
2015-04-18 14:42:22
阅读次数:
222