execve

传递环境变量执行文件

头文件

#include < unistd.h >

函数原型

int execve(const char *pathname, char *const argv[] , char *const envp[])

函数说明

execve()用来执行参数path字符串所代表的文件路径,接下来的参数代表执行该文件时传递过去的参数数组指针。最后一个参数代表环境变量指针,key=value的格式

返回值

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

范例

#include <stdio.h>
#include <unistd.h>

int main(int argc, char *argv[]) {
    printf("entering main process\n");
    char *envp[] = {"A=1",NULL};
    char * const argvs[] = {"env",NULL};
    execve("/bin/env",argvs,envp);
    return 0;
}

执行

[root@iz2zecj7a5r32f2axsctb9z exec]# ./execve
entering main process
A=1
文档更新时间: 2021-03-05 11:29   作者:周国强