我正在编写一个 C++ 套接字库来处理管理与套接字相关的系统调用的复杂性。我很好奇在创建FILE*
withfdopen(3)
并将其与客户端的原始文件描述符一起使用时是否有任何有害的副作用。
我希望能够做到这一点,因为它提供了更大的灵活性,可以在使用的select(2)
同时使用getline(3)
(这个问题的主要目标)等东西,但是我担心这FILE*
会导致基于文件描述符的实用程序出现一些问题(即内部缓冲一个FILE*
混乱select(2)
的能力来确定是否有可用的数据read(2)
)。