我一直在实现一个使用 execvp() 执行给定命令的小程序。不使用重定向时它工作正常,但是当我运行以下命令时:
cat file1.txt > redirected.txt
cat 输出以下错误信息并失败:
cat: >: No such file or directory
cat: redirected.txt: No such file or directory
我已经做了一些挖掘,我开始认为 execvp() 可能不允许进行重定向,因为它不在 shell 中运行。这是否意味着我必须在重定向发生时手动选择并在我的 fork/exec 代码中使用管道来绕过这个限制?有没有比使用 execvp() 更好的方法?
谢谢!