首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Linux和gcc上没有_fdopen

在Linux和gcc上没有_fdopen
EN

Stack Overflow用户
提问于 2015-05-04 08:27:52
回答 1查看 670关注 0票数 0

我给fdopen打电话。在Windows上,使用VisualC++ 2010,当我调用它时,会收到一条警告:

警告1警告C4996:'fdopen':不推荐此项的POSIX名称。相反,使用符合C++的名称:_fdopen。

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

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-04 08:40:27

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

本质上,fdopen属于任何一个完全特定于平台的功能的范畴;它只是在不同的系统上不同而已。如果警告对您有影响,您可以使用一些预处理程序在Windows中使用代码的一部分,在Linux中使用另一部分代码,例如。在你自己的fdopen包装里。

关于_fdopen是符合ISO C++的信息: C++标准提供了一些类似于_的东西,一开始是编译器特定的。所以是的,在这一点上它是一致的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30025721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档