В каком разделе идут описания C-структур данных?

Я прочитал следующий ответ QA о том, что представляют собой различные разделы man-страниц: что означают номера на странице руководства?

Прочитав это, я не был уверен, какой раздел предназначен для описания C-структур данных. Это идет в разделе 3 так же, как описания функций C, или это происходит в другом разделе?

Важно то, что я узнаю, в каком разделе идет man-страница о структуре данных C, и что полученный мной ответ не является специфическим для одного конкретного вкуса семейства ОС. Мне нужен ответ, который является стандартным для всех из них.

Структуры C обычно детализируются на странице руководства функции или функции, с которой они наиболее связаны. Например:

  • Структура struct sockaddr определена в bind(2) (системный вызов).
  • Структура struct utmp определена в utmp(5) (форматы файлов: utmp).

Разработчикам также не требуется специально предоставлять подробные сведения об их структурах в man-страницах, так как это в основном работа с хорошо прокомментированными файлами заголовков (см. /usr/include ).

В общем, если вы ищете подробности о структуре, посмотрите на функцию, для которой вы ее используете. Например, если вы хотите узнать больше о аргументе asctime ( struct tm ), просто посмотрите man-страницу asctime . Большинство структур имеют набор функций, используемых для их манипулирования, и обычно у них есть справочная страница. Если функция не связана с вашей структурой, вот несколько вариантов:

  • Структура тесно связана с концепцией (например, struct sockaddr_un для UNIX-сокетов). Посмотрите справочную страницу, связанную с этой концепцией (здесь unix(7) ).
  • Структура связана с файлом или используется для синтаксического анализа этого файла (например, struct utmp ): посмотрите man-страницу этого файла, если она есть (здесь utmp(5) ).
  • Структура, как представляется, не документирована ни на одной странице руководства, посмотрите на файл заголовка, в котором она определена. Ниже приведен пример struct ifaddrs , хотя у нее есть man-страница в getifaddrs(3) :

Файл: /usr/include/ifaddrs.h

 struct ifaddrs { struct ifaddrs *ifa_next; /* Pointer to the next structure. */ char *ifa_name; /* Name of this network interface. */ unsigned int ifa_flags; /* Flags as from SIOCGIFFLAGS ioctl. */ struct sockaddr *ifa_addr; /* Network address of this interface. */ struct sockaddr *ifa_netmask; /* Netmask of this interface. */ // ... };