C POSIX函数的头文件
Headers for C POSIX functions
我在哪里或如何找到正确的C头包含在c++程序中,以获得在POSIX兼容环境中声明的C函数的声明?
我问这个问题是因为我需要在我的c++程序中使用open()
系统调用来达到我的目的,所以我最初试图包括关于open()
(在SYNOPSIS部分)的在线文档中提到的头,它们是sys/stat.h
和fcntl.h
。然而,当试图编译时,编译器抱怨没有声明open()
。在谷歌上搜索后,我发现另一种可能是unistd.h
。我尝试使用该头和程序编译。因此,我回到POSIX文档中阅读更多关于unistd.h
的信息,以检查那里是否提到了open()
,但我找不到任何关于它的信息。
我做错了什么?为什么在POSIX文档和我的GCC环境之间存在这种差异?
在我的Linux Debian/Sid上,man 2 open
页面显示:
SYNOPSIS
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
所以你需要包括所有三个上面的文件。open
在/usr/include/fcntl.h
中声明,但需要从其他两个include中声明。
和下面的测试文件
/* file testopen.c */
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int
testopen (void)
{
return open ("/dev/null", O_RDONLY);
}
使用gcc -Wall -c testopen.c
编译,没有任何警告。
相关文章:
- C++ gmock - 我们如何在单元测试 cpp 文件中读取/获取 cpp 文件函数的参数值
- 使用其他头文件函数的头文件
- 创建文件函数是否可以打开仅在WinObj实用程序中的全局目录下列出的设备的句柄?
- 如何指定创建文件函数获取未缓存的结果?
- 标准库头文件函数原型的实现是如何用 c++ 编写的?
- 如何将类对象作为对另一个头文件函数的引用传递
- 读取文件函数lpbuffer和字节以读取澄清
- C++ - 未定义的对多个文件函数的引用
- 使用C++的可视 Unicode 文件函数
- C 创建文件函数错误
- WinAPI 创建文件函数 2.
- 具有CREATE_ALWAYS处置的创建文件函数
- 重写c库文件函数
- 如何使用客户端调用堆栈中的地址从 PDB 检索文件/函数/行号?
- 通过头文件函数将遍历的数据从二进制搜索树加载到Vector中
- 需要帮助无法弄清楚为什么我的头文件函数声明不起作用
- 是否可以在不使用文件函数的情况下使用代码块从文件运行某些用例测试?
- 如何用c++文件函数读写8位整数单位形式的数据
- 在c++中读文件函数如何识别文本文件的结束
- 使用Windows API的c++文件函数