【问题标题】:Setting a custom working directory for a process started with exec为以 exec 启动的进程设置自定义工作目录
【发布时间】:2012-03-03 16:06:54
【问题描述】:

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

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

【问题讨论】:

    标签: c linux exec working-directory


    【解决方案1】:

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

    switch (fork()) {
    case 0:
        chdir(newpath); 
        execvp(...);
        break;            
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-29
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多