我在C中编写一个类似于控制台的小程序,以及ls,tac和dir的实现。
我使用execvp()函数来覆盖进程的分叉子进程,但是当用户插入上述3个命令之一时,我必须执行自己的版本,而不是系统中的那个。
我知道execvp()使用系统PATH变量在不同位置搜索可执行文件。我可以以某种方式编辑我的程序中的PATH,所以我可以添加一个自定义目录作为execvp()搜索的第一个位置吗?
谢谢!
答案 0 :(得分:0)
您可以使用PATH
更改setenv
- 但请注意,在执行exec
之前,只需明确检查这些命令就可能更简单。