C 数据结构的描述在哪一部分?

Sop*_*_ES 2 man documentation

我阅读了以下关于手册页各个部分代表什么的回答 QA:手册页中的数字是什么意思?

在阅读它时,我不确定哪个部分用于描述 C 数据结构。它是像 C 函数的描述一样放在第 3 部分,还是放在不同的部分?

重要的是我了解了关于 C 数据结构的手册页的哪个部分——而且我收到的答案并不特定于操作系统系列的一种特定风格。我需要一个标准的答案。

Joh*_*ith 5

C 结构通常在与它们最相关的特性或函数的手册页中有详细说明。例如:

  • struct sockaddr结构在bind(2)(系统调用)中定义。
  • struct utmp结构在utmp(5)(文件格式:utmp)中定义。

开发人员也没有特别要求在手册页中提供有关其结构的详细信息,因为这基本上是良好注释的头文件的工作(请参阅 参考资料/usr/include)。

一般来说,如果您正在寻找有关结构的详细信息,请查看您使用它的功能。例如,如果您想了解更多有关asctime的参数 ( struct tm) 的信息,只需查看asctime的手册页。大多数结构都带有一组用于操作它们的函数,这些函数通常有一个手册页。如果没有与您的结构相关联的功能,这里有几个选项:

  • 该结构与一个概念密切相关(例如struct sockaddr_un对于 UNIX 套接字)。查看与该概念相关的手册页(此处为unix(7))。
  • 该结构与文件相关联,或用于解析此文件(例如struct utmp):查看此文件的手册页(如果有)(此处为utmp(5))。
  • 该结构似乎没有记录在任何手册页中,请查看定义它的头文件。这是 的示例struct ifaddrs,即使它有一个手册页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.  */

   // ...
};
Run Code Online (Sandbox Code Playgroud)