![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
进程
倾听一分钟
这个作者很懒,什么都没留下…
展开
-
进程篇——wait()与waitpid()销毁进程
文章目录销毁进程孤儿进程和僵尸进程销毁进程wait()函数原型:waitpid()函数原型这两个函数的区别如下:在一个子进程终止前,wait使其调用者阻塞,而waitpid有一个选项,可使调用者不阻塞;waitpid()并不等待在其调用之后的成功第一个终止的子进程,它有若干个选项,可以控制它所等待的进程waitpid()能够等待指定的一个进程结束注意:如果其所有子进程都还在运行,则调用wait()或waitpid()的父进程阻塞。只要有一个进程终止,wait就会返回。也就是说只原创 2020-05-24 20:14:44 · 300 阅读 · 0 评论 -
进程篇——exit()与_exit()退出进程
退出进程exit()、_exit()#include<stdlib.h>void exit(int status);//参 数status,程序退出的返回值#include<unistd.h>void _exit(int status);exit()与_exit()区别exit():则在这些基础上作了一些包装,在执行退出之前加了若干道工序。exit()属于标准库函数_exit():直接使进程终止运行,清除其使用的内存空间,并销毁其在内核中的各种数据原创 2020-05-24 20:13:36 · 1093 阅读 · 0 评论 -
进程篇——exec函数族执行进程
执行进程在系统调用 fork() 之后,有个进程使用系统调用 exec(),以用新程序来取代进程的内存空间。系统调用 exec() 加载二进制文件到内存中(破坏了包含系统调用 exec() 的原来程序的内存内容),并开始执行。采用这种方式,这两个进程能相互通信,并能按各自方法运行。父进程能够创建更多子进程,或者如果在子进程运行时没有什么可做,那么它采用系统调用 wait() 把自己移出就绪队列,直到子进程终止。因为调用 exec() 用新程序覆盖了进程的地址空间,所以调用 exec() 除非出现错误,不会原创 2020-05-24 20:11:54 · 685 阅读 · 0 评论 -
进程篇——fork()与vfork()创建进程
文章目录1.什么是进程2.父子进程3.fork()创建进程4.vfork()创建并执行进程1.什么是进程进程是执行中的程序。当一个程序被加载到内存之后就变为了进程。 进程=程序+执行2.父子进程创建进程称为父进程,而新的进程称为子进程当进程创建新进程时,可有两种执行可能: 父进程与子进程并发执行。 父进程等待,直到某个或全部子进程执行完。新进程的地址空间也有两种可能: 子进程是父进程的复制品(它具有与父进程同样的程序和数据)。子进程加载另一个新程序。下面的两张图就表示父进程和相对应原创 2020-05-24 20:10:35 · 332 阅读 · 0 评论