Em que seção descrições de estruturas de dados C vão?

2

Eu li a seguinte resposta do QA sobre o que as várias seções das páginas man representam: O que significam os números em uma página man?

Ao lê-lo, não sabia qual seção é para descrições de estruturas de dados C. Ele vai na seção 3 assim como as descrições das funções C, ou vai em uma seção diferente?

O importante é que eu saiba em que seção uma página de manual sobre uma estrutura de dados C ocorre - e que a resposta que recebo não é específica para um sabor específico da família de sistemas operacionais. Preciso de uma resposta que seja padrão em todos eles.

    
por Sophia_ES 23.12.2014 / 15:31

1 resposta

5

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 em bind(2) (chamada do sistema).
  • A estrutura struct utmp está definida em utmp(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 em getifaddrs(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.  */

   // ...
};
    
por 23.12.2014 / 15:40