Почему открыто объявлено в fcntl.h, а close объявлен в unistd.h?

В POSIX, почему открытый системный вызов объявлен в fcntl.h, а закрытый системный вызов объявлен в unistd.h? Я предполагаю, что это исторический артефакт, но эта пара кажется мне особенно странной, так как вам часто нужно закрываться после открытия.

Ответ 1

Как указывалось ранее, разъемы и трубки также передаются для закрытия. Но, по-видимому, первоначальная причина заключается в том, что открытые флаги потребностей, такие как O_RDONLY, которые определены в файле fcntl.h, поэтому вы можете также поставить прототип в этот файл.