exec函数族
exec函数族的主要作用是让一个进程去执行一个指定的程序文件。
或者这么理解:exec函数族的作用就是让一个指定的程序文件中的数据和指令替换到调用进程的数据和指令。
#include<stdio.h>
int main(int argc,char *argv[])
{
int a,b;
int sum;
a = atoi(argv[1]);
b = atoi(argv[2]);
sum = a + b;
printf("%d + %d = %d",a,b,sum);
return 0;
}
atoi()函数在<stdlib.h>库文件中,是把字符串转换成整形数的一个函数
exec函数族是让一个进程去执行另外一个程序文件。就是让另外一个程序文件的数据和指令,覆盖掉当前进程的数据和指令。
exec让一个进程去执行另外一个程序,那么:
你是不是要指定这个程序文件的名字?
一个文件系统中的程序文件的名字(带路径)
你可能还得指定程序运行的参数,都是字符串。
指定程序的参数有两种方式:
l:list
把程序运行的参数,一个一个地列举出来。
程序运行的第一个参数,是程序的名字(不带路径)
“sum_ab”,“3”,“4”,NULLv:vector(向量数组)
把程序运行的参数,弄成一个char *的数组
char *argv[ ] = {" sum_ab ", " 3 ", " 4 ", NULL};
#include <unistd.h>
extern char **environ;
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[]);
int execvp(const char *file, char *const argv[]);
int execvpe(const char *file, char *const argv[], char *const envp[]);