我正在使用popen
在我的应用程序中打开另一个进程并解析其输出。我想在程序发出任何输出后立即收到通知。目前我程序中的所有内容都使用epoll
来执行此类操作。现在popen
确实给我一个FILE *
而不是fd
。是否保存使用fileno
函数并将生成的fd
放入epoll
?如果没有,还有另一种方式吗?我不想阻止进程,这就是我想要通知的原因。
答案 0 :(得分:0)
是的,它是安全的,只要你不用文件描述符做任何额外的事情而不小心它似乎是安全的。还有一件事是,您可能希望将文件描述符标记为非阻塞。这样您就可以read()
无阻塞地处理EBUSY
或EAGAIN
检查errno
。