exec 系列的其它系统调用给程序员提供使用 exec 功能的灵活性,它们能适用于多种形式的参数表。execv()只有两个参数:第一个参数指向被执行的程序文件的路径名,第二个参数 argv 是一个字符型指针的数组,如下所示:
char *argv []
这个数组中的第一个元素指向被执行程序的文件名(不含路径),剩下的元素指向程序所用的参数。因为该参数表的长度是不确定的,所以要用 null 指针作结尾。下面给出一个用 execv()运行 ls 命令的例子:
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(void) { char* av[] = {"ls","-l",NULL}; execv("/bin/ls",av); return 0; }