如何捕获子进程的输出?

kz 2004-03-16 02:47:52
使用g++ -v a.cc会看到g++的工作流程,但是如何捕捉这些输出?
...全文
167 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
kz 2004-03-19
  • 打赏
  • 举报
回复
up
kz 2004-03-18
  • 打赏
  • 举报
回复
那位大人能回答最后一个问题?
renfu999 2004-03-18
  • 打赏
  • 举报
回复
mark!

yjf7888 2004-03-17
  • 打赏
  • 举报
回复
up
NC 2004-03-17
  • 打赏
  • 举报
回复
g++ -v a.cc >err.txt 2>>err.txt
ok了
kz 2004-03-17
  • 打赏
  • 举报
回复
你是说重写g++?与此问题相似的是捕获make建立子进程的输出。
longenic 2004-03-17
  • 打赏
  • 举报
回复
你可以在程序里将输出写到控制台, 再在执行时候重定向到某个文件
kz 2004-03-17
  • 打赏
  • 举报
回复
太感谢NC(NIECHUAN) 和tianxiangyuan(潇湘夜雨)
现在总算搞清楚了g++ -v原来是将屏幕上的信息输出到错误流了,怪不得用普通方法捕获不了!
不过我还想问一个更广义上的问题:象g++,make这样的程序因为设计良好,所以在作为父进程时将子进程的标准输出流重定向到自己的标准输出流了。但如果有程序设计的不好呢?我是说不管什么程序的输出都可以看到是因为大家的输出都写到控制台上了,有没有什么命令可以重定向整个控制台呢?
kz 2004-03-16
  • 打赏
  • 举报
回复
真的没有人会吗?
anonimousboy 2004-03-16
  • 打赏
  • 举报
回复
可以用管道,在某个进程中启动g++,然后把该进程中的标准输出和管道的一端建立链接
用dup2()可以建立这种链接!!
kz 2004-03-16
  • 打赏
  • 举报
回复
那个不行的。那只是将错误流写到输出流!我认为g++ -v的输出实际上是由子进程的输出组成的,如何捕获它?
yuanlei1978113 2004-03-16
  • 打赏
  • 举报
回复
g++ -v a.cc > output.txt
tianxiangyuan 2004-03-16
  • 打赏
  • 举报
回复
2>&1
kz 2004-03-16
  • 打赏
  • 举报
回复
up

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧