7

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

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

4

1 回答 1

19

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

switch (fork()) {
case 0:
    chdir(newpath); 
    execvp(...);
    break;            
}
于 2012-03-03T16:08:19.827 回答