【发布时间】:2020-11-09 23:17:27
【问题描述】:
我想用execve() 更改子进程的环境变量,这样如果子进程打开当前目录中的文件,它就会链接到另一个目录。我必须更改什么环境变量才能完成此任务? $PWD 不工作。
例如:
char *args[] = { .... };
char *env[] = { "PWD=/home/anydirectory_I_Wish", NULL };
execve( mycode, args, env);
【问题讨论】:
-
可以使用
chdir()改变当前工作目录 -
PWD 只是一个环境变量,只有一个命令可以改变当前目录
-
子进程在哪里?
execve不会创建新进程,除非您没有显示fork,否则没有子进程。 -
对不起,我的意思是“被另一个进程占用”
标签: c linux environment-variables