Должен ли я включать какие-либо или все заголовки, перечисленные в кратком описании справочной страницы?

StackOverflow https://stackoverflow.com//questions/21052775

  •  22-12-2019
  •  | 
  •  

Вопрос

Например, возьмем open(2), который имеет следующий краткий обзор:

#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);

Должен ли я включать все эти заголовочные файлы или подойдет любой из них?В первом случае, как я узнаю, какие заголовочные файлы содержат какие функции, макросы и определения типов?

Это было полезно?

Решение

Вы должны включать все их.Спецификация POSIX расскажет вам, что в каждом (например, Это Спецификация POSIX для FCNTL.H) или, по крайней мере, что гарантированно будет в каждом.

Другие советы

Вы должны включить все эти заголовочные файлы.Заголовки, упомянутые в синопсисе, все должны быть включены.

afaik, вы должны включить все эти заголовочные файлы.Зачем вам нужно знать, какой файл заголовка содержит макросы, функции или Typedefs, если вы в конечном итоге включите их все?

Только <fcntl.h> требуется.Есть две справочные страницы для open. http://linux.die.net/man/2/open и http://linux.die.net/man/3/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);

Если вы используете перегрузку с mode_t, вам нужно <sys/types.h>.

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

int open(const char *path, int oflag, ... );

Для последней перегрузки, opengroup.org считает <sys/stat.h> необязательный.Также, <sys/types.h> это тоже не требуется.

Требование о включении <sys types.h=""> было удалено.Хотя требовалось для соответствия реализациям предыдущих Спецификаций POSIX, это не требовалось для приложений UNIX.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top