As estruturas C geralmente são detalhadas na página man do recurso ou função com a qual estão mais associadas. Por exemplo:
- A estrutura
struct sockaddr
está definida embind(2)
(chamada do sistema). - A estrutura
struct utmp
está definida emutmp(5)
(formatos de arquivo: utmp).
Também não é especificamente exigido que os desenvolvedores forneçam detalhes sobre suas estruturas em man pages, já que este é basicamente o trabalho de arquivos de cabeçalho com comentários bem feitos (veja /usr/include
).
Em geral, se você está procurando detalhes sobre uma estrutura, dê uma olhada na função para a qual está usando. Por exemplo, se você quiser saber mais sobre o argumento de asctime
( struct tm
), basta dar uma olhada em % Página man doasctime
. A maioria das estruturas vem com um conjunto de funções usadas para manipulá-las, e elas geralmente têm uma página man. Se não houver função associada à sua estrutura, aqui estão algumas opções:
- A estrutura está intimamente relacionada a um conceito (por exemplo,
struct sockaddr_un
para soquetes UNIX). Dê uma olhada na página do manual associada a esse conceito (aqui,unix(7)
). - A estrutura está associada a um arquivo ou é usada para analisar esse arquivo (por exemplo,
struct utmp
): dê uma olhada na página de manual desse arquivo, se houver alguma (aqui,utmp(5)
). - A estrutura parece não estar documentada em nenhuma página man, dê uma olhada no arquivo de cabeçalho no qual ela está definida. Aqui está o exemplo de
struct ifaddrs
, mesmo que tenha uma página man emgetifaddrs(3)
:
Arquivo: /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. */
// ...
};