2013-01-09 66 views
0

我正在编写一个类似C的小控制台程序,以及ls,tac和dir的实现。将目录添加到PATH的execvp()

我使用execvp()函数来覆盖进程的分叉子进程,但是当用户插入上述3个命令之一时,我必须执行自己的版本,而不是系统中的版本。

我知道execvp()使用系统PATH变量来搜索可执行文件的不同位置。我可以以某种方式编辑我的程序中的PATH,因此我可以添加一个自定义目录作为execvp()搜索的第一个位置?

谢谢!

+2

这里有一个很好的解释:http://stackoverflow.com/questions/7630551/using-a-new-path-with-execve-to-run-ls-command – hmatar

+0

你不能只把整个路径? –

回答

0

您可以使用setenv更改PATH - 但请注意,在执行exec之前只需明确检查这些命令可能会更简单。