A biblioteca GNU C tem um manual de referência que inclui documentação para todos ou a maioria dos dados estruturas na biblioteca e extensões padrão. Isso tem um índice de tipos . Cuidado, há também um "Manual de Referência GNU C", mas ele e o Manual de Referência da "Biblioteca GNU C " são duas coisas diferentes.
Você também pode gerar automaticamente a documentação suficiente para navegar pelas estruturas de dados com o doxygen (observe que ele funciona muito melhor com coisas que são realmente anotadas para isso, mas podem ser usadas grosseiramente desta forma). Eu tentei isso aqui no /usr/include
e levou < 2 minutos (produzindo, n.b., ~ 800 MB de html). Os passos foram:
-
Crie um arquivo de configuração básico em algum lugar (em qualquer lugar),
doxygen -g doxygen.conf
. -
Edite o arquivo e altere as seguintes configurações:
OUTPUT_DIRECTORY = /home/foo/whatever # documentation goes here OPTIMIZE_OUTPUT_FOR_C = YES EXTRACT_ALL = YES INPUT = /usr/include FILE_PATTERNS = *.h RECURSIVE = YES GENERATE_LATEX = NO
Note que todos os que já existem no arquivo de configuração, você precisa pesquisar e alterar / definir os valores conforme mostrado.
-
Gerar:
doxygen doxygen.conf
.
Agora abra /home/foo/whatever/html/files.html
. Existe um index.html
, mas é provavelmente WTF-up (novamente, o doxygen é principalmente destinado a coisas que foram intencionalmente anotadas para ele), então a lista de arquivos é o ponto de entrada mais predizível. Há também um copioso "Índice de Estrutura de Dados", mas por qualquer motivo, nem tudo o que você acha que está indexado nele. Por exemplo, você pode alcançar structstat.html
seguindo a lista de arquivos, asm-generic - > stat.h , mas "struct stat" não é mencionado no "Data Structures Index". Muitas coisas padrão do C lib seguem esse padrão: há um macro / define / typedef no cabeçalho predigível ( sys/stat.h
) que extrai algo externo que acaba em um cabeçalho específico de plataforma / sistema em, por exemplo. %código%. Tenho certeza que você já percebeu isso antes. O exemplo stat não é tão ruim, na medida em que pelo menos a definição final ainda é chamada asm-generic.h
e não struct stat
.
Então, isso leva algum tempo para se acostumar e, no final, não é muito melhor do que ferramentas com struct _fooX_stat
. Ele também tem a vantagem dis (?) De incluir campos que não são do usuário (por exemplo, compare o grep
conforme documentado acima com sua descrição em struct stat
). Para a biblioteca padrão (e extensões GNU), o manual de referência é muito melhor. No entanto, coisas do WRT que não estão nesse manual, é um pouco melhor que nada. Eu recomendo que, se você quiser usá-lo dessa maneira, seria melhor fazer diretórios individuais de forma independente, em vez de toda a shebang (pista: você pode definir man 2 stat
). 800 MB de html é muito complicado.