在epoll中使用FILE *

时间:2017-02-12 00:48:28

标签: c popen file-descriptor

我正在使用popen在我的应用程序中打开另一个进程并解析其输出。我想在程序发出任何输出后立即收到通知。目前我程序中的所有内容都使用epoll来执行此类操作。现在popen确实给我一个FILE *而不是fd。是否保存使用fileno函数并将生成的fd放入epoll?如果没有,还有另一种方式吗?我不想阻止进程,这就是我想要通知的原因。

1 个答案:

答案 0 :(得分:0)

是的,它是安全的,只要你不用文件描述符做任何额外的事情而不小心它似乎是安全的。还有一件事是,您可能希望将文件描述符标记为非阻塞。这样您就可以read()无阻塞地处理EBUSYEAGAIN检查errno