在c中使用带有fork的cd命令

时间:2016-07-26 00:13:17

标签: c linux directory fork chdir

是否可以使用fork命令更改目录?不要过多地使用我的代码,我有以下内容:

childpid = fork();

if (childpid >= 0)
{
    if (childpid == 0)
    {   
        ret = execvp(argv[0],argv);
        exit(ret);    
    } else {

          waitpid(childpid,&status,0);
          ret = WEXITSTATUS(status);
    }
}

当我输入lspwd等基本命令时,上述工作正常。是否可以实现使用cd功能的方法?我可以输入命令cd ..,但它没有做任何事情。

例如,如果我的程序在/Users/username/Desktop/,我想使用cd ..之类的命令进入/Users/username/或者能够直接进入/Users

我已经看过chdir的一些内容,但我不确定它是如何工作的/如何使用它。

1 个答案:

答案 0 :(得分:1)

正如您提到的chdir是更改当前进程的工作目录的最佳方法,shell命令+00:00只会更改运行命令的进程的工作目录(而不是父进程)cd将创建一个新进程。

对于chdir用法,您可以尝试:

fork