有没有一种安全的方法或常见的做法来确保我execvp
被处决的孩子生活在良好的状态?
例如:我让我的程序的用户为程序中的一些数据选择一个自定义处理器(假设他想用 处理它们bzip2 -zc -
)。fork()
我使用通常的,execvp()
并为每个 stdin、stdout 和 stderr创建这个过程pipe(), dup2()
。但是我无法影响用户是否给了我一个正确的命令调用或由于某些参数错误而将死的东西(例如,他可能给了我cat foo
但文件 foo 不存在,因此 cat 将立即退出)。
我能否以某种方式确保至少在执行此用户命令之后并且在我开始输入输入之前它处于良好状态 - 等待我的输入 - 而不是已经死亡或死亡?