c - 如何在使用 dup2(..) 和使用 execvp(...) 后重定向回标准输出

标签 c exec stdout std

我正在使用 execvp() 运行多个命令。在我的 execs() 之一之前使用 dup2() 后,它会按预期重定向到 dup2() 中的文件。然而,问题是 dup2 之后发出的任何 execvp() 都会不断重定向回文件。我的问题是:如何使用 dup2 将输出重定向回标准输出?

最佳答案

您可以使用 dup() 和 dup2() 将 stdout 保存回来。

我建议您在 fork() (在子进程内)之后而不是之前执行 dup2() 重定向。

关于c - 如何在使用 dup2(..) 和使用 execvp(...) 后重定向回标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7640360/

相关文章:

c - 如果我使用共享库,如何在 Arduino 中构建和上传代码?

c - 静态数组传递给c中的函数

java - 从java执行批处理文件并打开运行批处理文件的cmd

gcc - gcc从stdin读取gnu readline()的编译错误

stdout - 如何在 Raku 中截获 Proc::Async 的无缓冲输出?

bash - 将 stdout 和 stderr 重定向到带有前缀的单个文件

c - 我在SAMA5D27板的C程序中找不到问题

c - 读者 - 作者 C - 通过不良同步模拟写作冲突

linux - socket() 在 C 客户端服务器应用程序中返回 0

php - 带 nohup 的 Shell_exec php