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

Can*_*ğlu 6 c linux exec working-directory

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

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

cni*_*tar 15

使用chdir(2)成功后fork(2),execing之前:

switch (fork()) {
case 0:
    chdir(newpath); 
    execvp(...);
    break;            
}
Run Code Online (Sandbox Code Playgroud)