开发者学堂课程【物联网开发- Linux 高级程序设计全套视频:Exec 函数族简介】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/660/detail/10996
Exec 函数族简介
内容介绍:
一、进程的替换
二、exec 函数族
一、进程的替换
比如说./atexit 运行这个程序就是必须要启动一个进程,是要命令解释器。通过命令解释器来启动一个进程,用 fork 或是 vfork 来创建进程,此时它的代码是一样的。
再创建代码的过程中怎样启动一个程序的代码,就要在进程中调用 exec 函数。
Exec 函数可以启动一个新的程序来替代当前进程的内容,这就可以运行当前程序的代码。注意创建进程还是要用到 fork 或是 vfork,就要用 exec 来运行当前程序的代码就行。
二、exec 函数族
exec 函数族,是由六个 exec 函数组成的。
1. exec函数族提供了六种在进程中启动另一个程序的方法
2. Exec函数族可以根据指定的文件名或目录名找到可执行文件
3. 调用exec函数的进程并不创建新的进程(创建新的进程是用fork或是vfork,而运行新的程序是用exec函数),故调用exec前后,进程的进程号并不会改变,全由新的程序替换,而新的程序则从其main函数开始执行。
Exec 函数族取代调用进程的数据断、代码断和堆栈段
如下图,可以看到进程还是原来的进程但是会被新的进程进行替换。
会在后面对 exec 函数族中的函数进行详细介绍,一共有六个函数,有 execl、execlp、execle、execv、execvp、execve。
总结:
exec 一共有六个函数,这六个函数是用来启动新的程序,用新程序的内容替换当前程序的内容,但是进程还是原来的进程,只是内容发生改变。