Linux中C程序的执行 - Xinrea/Learn GitHub Wiki
主要流程
- shell下./run
- shell新建进程P
- P中执行execve(),传入run的全路径
- execve()触发系统调用sys_execve(),根据文件修改当前进程执行环境
- 系统调用结束,返回P,P开始运行(此时已经在运行run中的代码)
sys_execve()中,设置了新的shell环境,几乎释放了原进程所有的资源(除了还没有自动关闭的文件描述符外),但PID保持不变。
sys_execve()中,设置了新的shell环境,几乎释放了原进程所有的资源(除了还没有自动关闭的文件描述符外),但PID保持不变。