为exec启动的进程设置自定义工作目录

时间:2012-03-03 16:06:54

标签: c linux exec working-directory

我在我的C代码中调用execv来启动可执行文件,但我想将其工作目录设置为自定义。

例如,在一种情况下,我正在启动ls,但它列出了我原始程序目录中的文件。但我想将工作目录设置为自定义。我将如何实现它,这样,我将其设置为/usr/binls将列出该目录中的文件。并且不要给我ls的具体解决方案,这只是一个例子。

1 个答案:

答案 0 :(得分:14)

在成功fork(2)之后使用chdir(2),然后执行:

switch (fork()) {
case 0:
    chdir(newpath); 
    execvp(...);
    break;            
}
相关问题