各位老铁们好,相信很多人对深入解析:Linux操作系统中进程的基本操作都不是特别的了解,因此呢,今天就来为大家分享下关于深入解析:Linux操作系统中进程的基本操作以及的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
调用exec并不会创建新的进程,因此调用exec前后进程的pid不会发生变化。
wait族(wait, wait3, wait4, waitpid):等待子进程终止,以便父进程可以回收其子进程。
进程从创建到最终被回收过程的简易图示:
进程创建与死亡进程父进程调用fork系统调用创建子进程;
- 子进程调用exec系统调用来执行其他代码;
- 子进程执行完代码后退出,等待父进程回收。此时子进程处于僵尸状态(仍可以使用ps命令查看,但无法再运行);
- 父进程调用wait函数来回收子进程,但如果父进程先于子进程结束而结束,子进程运行完毕后就会成为孤儿进程,最终会被init进程认领并回收。
代码示例process.c
#include#include#includeint main()
{
pid_t 进程号;
pid=fork();
if (pid 0) { /* 在父级*/
printf("我是家长n");
退出(0);
}
else if (pid==0) { /* 在子进程中*/
printf("我是孩子n");
execl("/home/slot/print_args", "print_args", "哈哈", NULL);
}
别的{
perror("分叉错误");
退出(-1);
}
printf("你好世界n");
返回0;
}print_args.c的功能是打印命令行参数,代码如下:
#includeint main(int argc, char const *argv[])
{
整数i=0;
而(我argc)
printf("%sn", argv[i++]);
/* 这里特意将返回值设置为233,方便观察差异*/
返回233;
}
执行结果
$ gcc print_args.c -o print_args
$ gcc process.c -o process
$
$ ./进程
我是家长
我是孩子
文章到此结束,如果本次分享的深入解析:Linux操作系统中进程的基本操作和的问题解决了您的问题,那么我们由衷的感到高兴!
【深入解析:Linux操作系统中进程的基本操作】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
终于搞懂了Linux中进程的基本运作机制!
有12位网友表示赞同!
想深入学习Linux内核,这个内容太重要了。
有7位网友表示赞同!
之前一直好奇Linux内核是怎么管理进程的,看来要好好啃啃这篇文章了。
有18位网友表示赞同!
学习Linux进程原语是通往更高阶Linux知识的第一步吧。
有19位网友表示赞同!
感觉自己对Linux的理解又更进一步了!
有7位网友表示赞同!
这篇内容讲解清晰,很好理解!太感谢了。
有17位网友表示赞同!
作为程序员,了解进程原语对编程效率有很大帮助。
有13位网友表示赞同!
这个知识点看起来很专业,但我决定要把它彻底弄懂!
有10位网友表示赞同!
学习Linux进程的本质,有助于解决一些底层bug.
有10位网友表示赞同!
这篇文章让我对Linux OS有了更深入的理解,很棒!
有14位网友表示赞同!
之前遇到过一些和进程相关的诡异问题,以后应该更容易解决了。
有20位网友表示赞同!
从零开始学习Linux内核,这就是我的目标!
有7位网友表示赞同!
希望以后有机会能够自己实现一个简单的进程。
有16位网友表示赞同!
这篇文章就像打开了Linux系统的门,看到了更深层次的运行机制。
有16位网友表示赞同!
感觉 Linux 的世界越来越有趣了!
有14位网友表示赞同!
继续学习Linux ,不断提升我的技能!
有14位网友表示赞同!
对编程初学者来说,这篇文章可能比较难理解,需要一些基础知识。
有12位网友表示赞同!
分享给我的朋友一起学习LINUX吧!
有14位网友表示赞同!
期待看到更多关于 Linux 的精彩内容!
有12位网友表示赞同!
学习Linux 进程原语是开启更多编程可能性的一扇门!
有13位网友表示赞同!