回电询问管道
我创建了两个管道用于子进程和父进程之间的通信。一根管道用于 STDIN,一根管道用于 STDOUT。
我想注册 STDIN 的回调函数。如果管道上有任何数据到达,则应该调用我的回调。可以在windows下实现吗。或者唯一的选择是使用线程,一个用于 STDIN,一个用于 STDOUT?
请建议
I have created two pipes for communication between child and parent process. One Pipe for STDIN and one for STDOUT.
I want to register for the call back function for STDIN. If any data arrives on the pipe, my Call back should be called. Can it be done in windows. Or Only option is to use threads, one for STDIN and one for STDOUT?
Kindly suggest
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ReadFileEx
允许您设置回调。但请注意,回调 APC 仅在线程进入可警报等待时才会被处理,它们不像 Unix 信号那样异步。而且回调是一次性的,如果您对未来的数据感兴趣,您的回调处理程序需要再次调用
ReadFileEx
。ReadFileEx
allows you to set up a callback. But be aware that callback APCs are only processed when your thread enters an alertable wait, they aren't asynchronous like Unix signals.And the callback is one-shot, your callback handler needs to call
ReadFileEx
again if you're interested in future data.