怎么样使用_popen创建子进程并分别重定向其标准输出和标准输入到两个文件呢?

jsjszg 2009-02-24 09:45:18
我可以使用下面的语句来把标准输出重定向到child_output文件
FILE* child_output;
child_output = _popen( command_line,"rt" );//文件打开模式可以用rt,r+,r,rw,r+w;不能用w+,a+,x,x+,w,a,wr,w+r

也可以使用下面的语句来把标准输入重定向到child_input文件
FILE* child_input;
child_input = _popen( command_line, "wt" );//文件打开模式可以用wt,w+,w,wr,w+r;不能用a,a+,rt,r++,r,x,x+,rw,r+w

网上查的文件打开的参数只能是:
r:
父进程 子进程
fp <--------- stdout

w:
父进程 子进程
fp ---------> stdin


但我怎么样把一个子进程的标准输出重定向到child_output而同时把标准输入重定向到child_input呢?

既可以捕获输出也可以将界面的输入传进去。


谢谢!!
...全文
434 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsjszg 2009-03-07
  • 打赏
  • 举报
回复
有具体措施吗?好像无从下手。
  • 打赏
  • 举报
回复
帮up吧
dongpy 2009-02-28
  • 打赏
  • 举报
回复
如将控制台输出定向到文件file:
close(1);
open( file, O_WRONLY );
dongpy 2009-02-28
  • 打赏
  • 举报
回复
标准输入输出的文件描述符是0和1,先关闭他们,然后将child_input和child_output对应文件打开在描述符0和1处。

Dinelgua 2009-02-25
  • 打赏
  • 举报
回复
好心
帮顶

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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