我想看看我在execve()函数中传递的环境变量是否真的传递了,所以我做了这段代码(Main.c):
int main(){
char PATH[4];
strcpy(PATH, "bin");
char * newargv[] = {"./get","", (char*)0};
char * newenviron[] = {PATH};
execve("./get", newargv, newenviron);
perror("execve");
return 0;
}
(get.c):
int main()
{
const char* s = getenv("PATH");
printf("PATH :%s\n",s);
}
但是,当我执行 Main.c 发出的二进制文件时,我得到以下输出:
路径:(空)
而我想看
路径:垃圾箱
你有什么解释吗?