进程的程序替换

目录

1. execl 接口

2. execv接口

3. execlp

4.  execvp

调用我们自己的可执行程序

makefile 中生成多个可执行程序

5. execle

从系统中调用环境变量

获取程序中定义的环境变量

小总结


1. execl 接口

第一个参数是要被执行程序的路径,后面的参数都是指针,指向的是命令,调用这个可执行程序所写的命令行就是参数

进程的程序替换_第1张图片

调用了 execl 后,进程内部的数据直接被替换成另一个进程的数据,不会执行输出操作:

进程的程序替换_第2张图片

2. execv接口

第一个参数是路径,第二个参数类型是指针数组,存放的是存放命令的数组:

进程的程序替换_第3张图片

进程的程序替换_第4张图片

3. execlp

与 execl 不同的只有第一个参数:

进程的程序替换_第5张图片

进程的程序替换_第6张图片

4.  execvp

与 execv 相比较,也是第一个参数不同,直接传要替换的程序名即可:

与上述结果都相同

进程的程序替换_第7张图片

调用我们自己的可执行程序

makefile 中生成多个可执行程序

进程的程序替换_第8张图片

进程的程序替换_第9张图片

进程的程序替换_第10张图片

进程的程序替换_第11张图片

5. execle

最后一个参数是环境变量,如果调用的进程中有要获取环境变量时,可以用此接口:

从系统中调用环境变量

进程的程序替换_第12张图片

environ 是一个接收环境变量的指针:

进程的程序替换_第13张图片

也可以在系统中之直接定义环境变量,在程序中获取,也是用 environ 获取:

进程的程序替换_第14张图片

进程的程序替换_第15张图片

获取程序中定义的环境变量

进程的程序替换_第16张图片

进程的程序替换_第17张图片

进程的程序替换_第18张图片

小总结

调用系统中原有的环境变量或者直接在系统中定义的环境变量时,用系统为我们提供的 environ 所接收环境变量即可;

若调用在程序中定义的环境变量,要传递他的指针,用 environ 是获取不到的。

你可能感兴趣的:(Linux笔记,linux,运维,服务器)