【发布时间】:2011-10-03 20:37:55
【问题描述】:
我正在使用 execvp() 运行多个命令。在我的一个 execs() 之前使用 dup2() 之后,它会按预期重定向到 dup2() 中的文件。但是,问题在于 dup2 之后的任何 execvp() 输出都会不断被重定向回文件。我的问题是:如何使用 dup2 将输出重定向回标准输出?
【问题讨论】:
-
您确定在单独的
fork-ed 进程中调用每个execvp吗?如果不这样做,对execvp的第一次调用将替换进程的图像,并且任何后续指令(包括对execve的其他调用)都不会到达。 -
是的,我在子进程中使用 exec 和 dup2。 if(pidid == 0){....}
-
我想通了..我有一个全局变量布尔值,一旦执行完成,我就再也没有在子进程中改回来。愚蠢的错误
-
不幸的是,发现一个 CS20 级别的编程错误似乎是一个 CS150 级别的问题并不总是很有趣。