
进程
文章平均质量分 65
爱阳阳的小猪猪
学习如何敲键盘ing
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
进程(守护进程)
什么是守护进程 守护进程,即通常所说的Daemon进程,是Linux中的后台服务进程,他是一个生存期较长的进程,通常独立于控制终端并且周期性的执行某种任务或等待处理某些事的发生。不会因为用户、终端、或者其他的变化而受到影响,那么就必须把这个进程变成一个守护进程。 怎么创建守护进程 1.我们知道子进程运行父进程退出的情况下,子进程会被init收养并转为后台进程,守护进程一般都是授予后台进程,所以第一步就是创建子进程父进程退出,让子进程成为后台进程。 2.利用setsid()创建一个新会话,并让子进程担任会话组原创 2021-10-18 23:51:02 · 1046 阅读 · 0 评论 -
进程(exec函数族)
上节中我们知道子进程是父进程的一个复制品,子进程执行的程序也是和父进程相同的(fork()之后的程序),那么如果只能依赖父进程的代码,子进程的作用就不是很大了。 有没有什么办法不让子进程执行父进程的代码,而是让子进程执行其他的代码呢?这就用到了exec函数族了。 exec函数族 exec函数族中有这样几个函数: int execl(const char *path,const char *arg,…); int execlp(const char *file,const char *arg,…); int原创 2021-10-18 20:58:27 · 252 阅读 · 0 评论 -
进程(进程回收)
进程回收 通过上节我们知道子进程退出后如果父进程不及时回收子进程会变成僵尸进程,那么父进程怎么回收已退出的子进程呢? wait()和waitpid()函数 wait()函数 函数原型 pid_t wait( int *status); ret: 成功:已回收进程的pid; 失败:-1; 功能:使用于父进程,等待(阻塞)一个子进程结束或该进程接到了一个指定的信号为止; 如果该父进程没有子进程或子进程已结束,那么wait()会返回-1; 代码 #include<stdio.h> #include原创 2021-10-14 20:40:34 · 359 阅读 · 2 评论 -
进程fork()
如何创建进程 平时我们编辑的程序可以利用"if""switch"等进行分支(如下程序) int main(){ if(.....){ .....; }else{ ......; } for(...;....;....){ ........; } return 0; } 但这样一个程序终究执行的只有一个任务,想要多任务编程我们需要再创建一个进程,那么怎样才能创建一个进程呢? fork()函数 我们可以利用fork()函数创建一个新的进程 函数原型:pid_t fork(void); ...原创 2021-10-12 21:32:25 · 288 阅读 · 3 评论 -
进程(父进程、子进程、init进程)
父进程和子进程、init进程之间的关系 通过上节我们知道,子进程是通过fork()函数创建的,相当于父进程的一个复制品,子进程和父进程除了子进程复制了父进程还有什么关系呢? 1.子进程和父进程属于同一进程组,父进程为进程组组长; 2.父进程退出子进程未退出的情况下,子进程会变成孤儿进程有init进程收养并转为后台进程; 3.子进程退出父进程为退出但父进程未及时进行回收,子进程就会成为僵尸进程; 用通俗的方式来讲:子进程和父进程就如同一家公司开了一家子公司一样,虽然在表面上看两家公司是两个独立的公司,但实际内原创 2021-10-13 21:21:09 · 3891 阅读 · 2 评论