open()系统调用头文件要求

时间:2015-02-19 14:26:29

标签: c header-files system-calls man

我正在使用带有gcc的x86_64 GNU / Linux man -s2 open的“概要”部分说:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);

现在,当我尝试编译以下代码片段时,gcc不会抛出警告/错误。

#include <stdio.h>
#include <fcntl.h>

int main(int argc, char **argv)
{
    int fd;

    fd = open("foo.txt", O_RDWR, 0777);
    if(fd == -1)
        perror("open");

    fd = creat("foo.txt", 0777);
    if(fd == -1)
        perror("creat");

    close(fd);
    return 0;
}

types.hstat.h是可选的吗?他们在open()的手册页中提供了什么目的?

1 个答案:

答案 0 :(得分:5)

手册页可以作为程序员和编译器制造商的指导。

您可能不需要包含在您的系统中。但是,手册页描述了使用这些方法的可移植方式,因此无论如何都应该包含它们。