OSX 10.10.3上的freopen()

时间:2015-06-01 16:09:19

标签: macos pthreads io-redirection

我有一个C程序,它产生一个pthread作为一个交互式终端:从stdin&读取行。对他们采取行动。该程序充当一种shell,fork - 关闭进程;在使用stdin加载新的可执行文件之前,如此创建的每个进程都使用对freopen()的调用重定向exec

在交互式线程启动之前,一切正常。一旦它开始(或者更具体地说,无论何时等待输入),对freopen()的呼叫都会挂起。有没有办法避免这个问题?

1 个答案:

答案 0 :(得分:1)

可以在R。回答Is close/fclose on stdin guaranteed to be correct?

的答案中找到适合我的解决方案。

基本上,想法是打开要重定向到的文件,将其复制到stdin,然后关闭刚刚打开的文件描述。