本文中的章节都是以疑问句的形式记录 , 也是希望大家带着问题来学习、总结进程相关知识 。说不定会在以后的面试中会被问到 。
文章目录六、几种特殊进程七、exec*族函数八、函数九、poen函数
一、什么是程序 , 进程?(面试)
程序:就是一些指令和数据的集合是一个静态的概念 。
【个人理解总结Linux系统编程之进程】进程:简单来说就是运行中的程序 , 是一个动态的概念 。
二、什么是进程标识符?(面试)
每个进程都有自己唯一的非负整数来表示进程称为进程标识符 。
三、如何查看系统中有哪些进程?
1.ps -aux
四、c程序的存储空间是如何分配的?(面试)
五、创建子进程 1.fork()
#include#include #include
2.fork()创建的子进程数据情况
由fork()创建的子进程 , 是父进程的副本 。子进程拥有父进程的数据空间 , 堆 , 栈的一份拷贝 , 但父子进程不共享这部分空间 。
#include#include #include
3.vfork()创建子进程的数据情况
vfork创建的父子进程 , 共享数据空间 , 且父进程等待子进程运行完 , 所以子进程结束需要调用exit()函数不然父进程不知道子进程退出与否 , 还一直等 。
#include#include #include
4.fork()创建子进程的目的?
1.通常在网络服务进程经常会使用到 , 父进程等待客户端的请求 , 当请求到达时 , 使用fork()与客户端进行对接 。当再来一个对接信号时 , 再fork()
2.一个进程需要执行不同的程序时 , 使用fork()通常与exec*族函数配合使用
六、几种特殊进程
文章插图
1.进程0:也叫做交换进程()(内核态进程)
2.进程1:也叫做init进程(用户态进程)
3.僵尸进程:父进程不关心子进程的运行情况 , wait(NULL)(有危害–容易导致崩溃)
4.孤儿进程:父进程先于子进程退出 , 被init进程收养 。(无危害)
七、exec*族函数
execl(“文件路径”,“可执行文件名” , 参数 , NULL)
#include #include #include #include #include #include #include #include #include #include int main(){pid_t pid;int data = http://www.kingceram.com/post/10;while(1){printf("please input a data\n");scanf("%d",&data); if(data =http://www.kingceram.com/post/= 1){int fdSrc;pid = fork();if(pid> 0){wait(NULL);}if(pid == 0){execl("./changData","changData","config.txt",NULL);}}else{printf("wait ,do nothing\n");}}return 0;}
- 筒叶花月的养殖方法和技巧总结
- 12306超过5个人怎么买
- 教装o的alpha做个人 教装o的alpha做个人补车
- 常用文件函数总结
- 多肉冻伤后怎么处理方法总结
- 关于个人时间规划的一点思考
- 【总结】1499- 抖音支付前端自动化监控
- 公众号项目总结
- 一个人长期失业的后果有哪些
- 显卡个人送保是什么意思