c++ - 以安全的 C++ 方式获取 FILE*

标签 c++ c++17 file-handling

有没有办法获得FILE*以现代 C++ 方式打开文件的句柄?.. 我想避免使用 std::fopen来自 <cstdlib>因为我被警告说它可能不安全。
我试着检查是否有办法检索 FILE*来自 fstream但似乎没有办法做到这一点。

最佳答案

I want to avoid using std::fopen from <cstdlib> as I've been warned that it's potentially unsafe.

fopen()没有什么“不安全”的地方.它通过 C 标准成为 C++ 标准的一部分。
他们可能说的是,最好使用 RAII 对象来管理资源(文件句柄),特别是当您在程序中使用异常时。

I tried checking if there's a way to retrieve FILE* from fstream but it seems there isn't a way to do that.


不是一个简单的,完全便携的。查看类似 this one 的问题.
如果你真的想要一个 FILE* ,使用 C API。

关于c++ - 以安全的 C++ 方式获取 FILE*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65863042/

相关文章:

c - FprintF 从链接列表到文件

c++ - 如何使用管道通过文件在父子之间共享数据?

C++ - 来自 std::string 的意外输出

c++ - 如何过滤 std::integer_sequence

c++ - 存储在类中的闭包中通过引用捕获的临时对象的生命周期

c++ - 仅在 C++ 中读取和写入整数类型的结构不起作用

java - 在 Java 中将数据从 MySql 传输到 NoSql 时使用文件作为中间层

c++ - 在此范围内未声明的变量 数组线性搜索

c++ - 位在字节顺序中重要吗?

c++ - 单文件 Makefile 问题 : C++