有没有办法让接收类型值的函数获取用于创建流的FILE *调用中使用的打开模式?fopen()
这个问题的动机是需要扩展一个 C++ 类,该类作为 stdioFILE指针的包装器,这样我就可以将一个已经打开的流克隆到一个新的包装流中,而原始流将继续由其他部分未包装地使用的程序。
在 POSIX 下,我知道我可以使用fileno()获取流的底层文件描述符来克隆(dup())它,但是使用底层描述符的文件标志并不能完全替代流打开模式,因为流有可能比它所绑定的描述符有更严格的访问限制。那么,您有什么建议吗?