execve

execve(执行文件)

相关函数:fork,execl,execle,execlp,execv,execvp

表头文件:#include <unistd.h>

定义函数:int execve(const char *filename, char *const argv[], char *const envp[]);

函数说明:execve()用来执行参数filename字符串所代表的文件路径,第二个参数系利用数组指针来传递给执行文件,最后一个参数则为传递给执行文件的新环境变量数组。

返回值:如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno中。

错误代码:EACCES: 欲执行的文件不具有用户可执行的权限。

范例:

#include <unistd.h>
main()
{
    char *argv[] =
    {
        "ls", "-al", "/etc/passwd", (char *)0
    };
    char *envp[] =
    {
        "PATH=/bin", 0
    };
    execve("/bin/ls", argv, envp);
}

执行: -rw-r--r-- 1 root root 705 Sep 3 13:52 /etc/passwd