1. exec函数族
exec函数族主要是将要执行的进程的用户空间覆盖之前进程的用户空间来执行自己的代码,所以之前进程的用户空间就会被覆盖且不会在执行
exec函数与fork函数
-
exec函数族中的函数可以实现在一个进程中执行另一个进程,这个进程可以是可执行文件、shell命令、shell脚本,它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段。在执行完之后,原调用进程的内容除了进程号外,其他全部都被替换了
-
fork函数用于创建一个子进程,该子进程几乎拷贝了父进程的全部内容。
可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。
#include <unistd.h>
int execl(const char *path, const char *arg, .../* (char *) NULL */);
int execlp(const char *file, const char *arg, .../* (char *) NULL */);
int execle(const char *path, const char *arg, .../*, (char *) NULL*/,char * const envp[]);
int execv(const char *path, char *const argv[])