Ответ 1
Вы хотите:
#include <fcntl.h> /* For O_RDWR */
#include <unistd.h> /* For open(), creat() */
Также обратите внимание, что, как пишет @R Samuel Klatchko, это библиотеки not. То, что #include
делает, вставляет файл в ваш код дословно. Так получилось, что стандартный заголовок fcntl.h
будет иметь следующую строку:
#define O_RDWR <some value here>
И unistd.h
будут иметь такие строки, как:
int open(const char *, int, ...);
int creat(const char *, mode_t);
Иными словами, прототипы функций, которые сообщают компилятору, что эта функция существует где-то и необязательно, каковы ее параметры.
Затем последующий шаг linking будет искать эти функции в library; то есть там, где входит термин "библиотека". Наиболее типично эти функции будут существовать в библиотеке под названием libc.so
. Вы можете подумать о том, что ваш компилятор добавляет флага -lc
(ссылка на libc
) от вашего имени.
Кроме того, это не "С++", а POSIX.