子进程的stdin重定向后,子进程立即退出了

wxw999 2011-03-10 06:19:09
首先请耐心看我的问题描述。

有一个进程,它从标准输入stdin中获取输入信息, 然后用标准输出 stdout 输出反馈信息。

我用 CreateProcess 创建了这个子进程 , 先保证它的 stdin 和 stdout 还是键盘和屏幕(那个DOS窗口),

接着我从键盘输入一个命令,回车后,它就输出一些反馈,然后它就等待我下一个输入命令,如此循环下去。

现在,我不想用键盘来输入命令 ,于是将它的 stdin 重定向到一个管道 ,可惜重定向后,它立即退出了,

根本不会等待你往管道写东西,将它的 stdin 重定向到一个文件,它读出文件的全部数据后,也退出了,

不会再等待你的下一次输入。

请问,我如何才能解决不用键盘来输入命令,而且它又不会退出,因为命令之间存在联系,如果采用文件,

它处理完一个命令后,就退出,那就无法完成多个命令之间的联系。

请熟悉这类问题的朋友帮帮我 , 非诚勿扰 , 谢谢!
...全文
194 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wobuhaohaoxuexi 2012-10-08
  • 打赏
  • 举报
回复
找到答案也不公布一下,好让我们后来人也学习学习啊
wxw999 2011-03-11
  • 打赏
  • 举报
回复
我找到答案了,谢谢你们
jwybobo2007 2011-03-10
  • 打赏
  • 举报
回复
你是怎么个重定向法
wxw999 2011-03-10
  • 打赏
  • 举报
回复
子进程不是我写的,为了测试,我自己也写了一个子进程,在子进程中只是简单的从标准输入中读取一个字符,然后显示一下。如果它的标准输入是键盘,它会等待你的输入,但如果你将它的标准输入重定向了,
它就不会等待你的输入,而是立即退出了。
aiwnx 2011-03-10
  • 打赏
  • 举报
回复
子进程使用循环不就行了吗?
while(1)
{
ReadFile();
...
}

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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