我有一个C程序,它生成一个线程作为一个交互终端:从stdin读取行并对它们进行操作。该程序充当一种shell,fork-ing off进程;这样创建的每个进程在使用exec加载新的可执行文件之前都会使用对freopen()的调用重新定向其stdin。
在启动交互式线程之前,所有线程都可以正常工作。一旦它启动(或者更具体地说,当它等待输入时),调用freopen()挂起。有什么办法可以避免这个问题吗?
发布于 2015-06-01 20:05:16
对我有用的解决方案可以在R.对Is close/fclose on stdin guaranteed to be correct?的回答中找到。
基本上,我们的想法是打开要重定向到的文件,将其复制到stdin,然后关闭刚刚打开的文件描述。
https://stackoverflow.com/questions/30578211
复制相似问题