从 ostream (stdout) 派生 stdio FILE 句柄
Derive stdio FILE handle from ostream (stdout)
我在 C++ 项目中使用 cout/ostream。但是它依赖于使用stdio(FILE)的C项目。
所以我想写一个类似
的函数
void MyLog(ostream output) {
OLD_UGLY_C_FUNCTION(ostream.toStdio());
}
这可能吗?在 C++11 之前?
重点是系统和编译器依赖项。您需要付出很多努力才能便携。问题中没有 OS 也没有给出编译器。要找到好的解决方案,请阅读 this 文档中的 "A Solution" 章。有代码可以剪切和粘贴。在这里复制是没有意义的。并注意 "file handle" 或“FILE*
流”和 "file descriptor" 的区别。第一个依赖于第二个。这在引用文件中也有很好的描述。
我在 C++ 项目中使用 cout/ostream。但是它依赖于使用stdio(FILE)的C项目。
所以我想写一个类似
的函数void MyLog(ostream output) {
OLD_UGLY_C_FUNCTION(ostream.toStdio());
}
这可能吗?在 C++11 之前?
重点是系统和编译器依赖项。您需要付出很多努力才能便携。问题中没有 OS 也没有给出编译器。要找到好的解决方案,请阅读 this 文档中的 "A Solution" 章。有代码可以剪切和粘贴。在这里复制是没有意义的。并注意 "file handle" 或“FILE*
流”和 "file descriptor" 的区别。第一个依赖于第二个。这在引用文件中也有很好的描述。