博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unix-Linux 编程实践教程 第八章 小结
阅读量:6952 次
发布时间:2019-06-27

本文共 566 字,大约阅读时间需要 1 分钟。

hot3.png

  • 执行程序的函数---execvp()                                                                                                                                        execvp中的argv是一个指针数组(数组元素为指针),最后一个指针需为NULL;execvp将在环境变量PATH中寻找file。execvp是先擦除当前进程空间的数据,然后再将目标程序代码从磁盘上载入到当前进程空间
  • 复制当前程序到新的进程空间---fork()。进程调用fork(),转到内核,内核进行以下操作:
    1. 分配新的内存块和内核数据结构
    2. 复制原来的进程到新的进程
    3. 向运行进程集添加新的进程
    4. 将控制权返回给两个进程(在父进程中,fork()返回值不为0,在子进程中fork()返回值为0) 
  • 等待子进程结束函数---wait()。wait()实际上时阻塞地等待SIGCHILD信号,如果设置了SIGCHILD处理函数,那么会先执行处理函数,再wait()返回。      
  • exit()->调用由atexit()或on_exit()注册的函数->_exit()。
  • _exit()流程:
    1. 关闭所有文件描述符和目录描述符
    2. 将该进程的PID设置为init进程的PID
    3. 如果父进程调用wait,即通知父进程
    4. 向父进程发送SIGCHILD
  • 已经死亡却没有给exi()没有赋值的进程叫做僵尸(zombie)进程

转载于:https://my.oschina.net/u/3281747/blog/2933817

你可能感兴趣的文章
记录centos7下tomcat部署war包过程
查看>>
vue的自定义指令的坑
查看>>
UITableView介绍 之 复杂cell的高度计算
查看>>
闭包问题
查看>>
js jquery select 操作 获取值,选中选项,增加,修改,删除
查看>>
PHP服务器负载判断
查看>>
爬取猎聘大数据岗位相关信息--Python
查看>>
HDU-3072-IntelligenceSystem(tarjan,贪心)
查看>>
upload控件
查看>>
【Foreign】Weed [线段树]
查看>>
js实现轮播图常规类(原生JS,没有任何框架)
查看>>
快速上手Git
查看>>
求符合给定条件的整数集(15)
查看>>
在字符串中查找指定字符(15)
查看>>
jdk及tomcat的安装
查看>>
hbase常识及habse适合什么场景
查看>>
JAVA 中一个非常轻量级只有 200k 左右的 RESTful 路由框架
查看>>
2018.8.5 复习笔记
查看>>
【转】 DOTA2中的伪随机及其lua实现
查看>>
A*算法、导航网格、路径点寻路对比(A-Star VS NavMesh VS WayPoint)
查看>>