gpt4 book ai didi

c++ - 在 Linux 和 gcc 上没有 _fdopen

转载 作者:行者123 更新时间:2023-11-28 02:27:30 26 4
gpt4 key购买 nike

我调用 fdopen .在 Windows 上,使用 Visual C++ 2010,当我调用它时,我收到一条警告

Warning 1 warning C4996: 'fdopen': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _fdopen.

在 Linux (g++ 4.8.2) 上它可以工作。

当我切换到 _fdopen 时,Visual C++ 停止提示,但 g++ 找不到它。由于 g++ 确实找到了 fdopen,我认为这不是描述的问题 here .无论如何,我没有指定 -std=c++11

我应该使用 _fdopen 吗?我应该使用 fdopen 并忽略警告吗?

最佳答案

fdopen 不是 C++ 标准的一部分,而是 POSIX。虽然几乎每个 C++ 编译器维护者都希望满足 C++ 标准,但对于是否支持 POSIX 以及如何支持,几乎没有达成共识。

本质上,fdopen 与任何完全特定于平台的函数属于同一类别;它只是在不同的系统上有所不同。如果警告让您感到厌烦,您可以使用一些预处理器的东西在 Windows 中使用一部分代码,在 Linux 中使用另一部分代码,例如。在你自己的 fdopen-wrapper 中。

关于 _fdopen 符合 ISO C++ 标准的消息:C++ 标准表示,开头带有 _ 的所有内容都是特定于编译器的。所以是的,在这一点上它是符合标准的。

关于c++ - 在 Linux 和 gcc 上没有 _fdopen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30025721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com