使用execv函数

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;

}