データ構造を定義するためのmanセクションまたは他のドキュメントストアはありますか?

データ構造を定義するためのmanセクションまたは他のドキュメントストアはありますか?

/usr/include/foo.h約100万回程度はaまたは他のメンバーを見つける必要がありました。ライブラリとカーネルを呼び出すためのmanセクションがあり、それらのいくつかはデータ構造の説明を含み、一部はそうではありません。カーネルとライブラリのデータ構造の定義を見つけることができる場所はありますか?struct foofoo_t

ベストアンサー1

GNU Cライブラリに参考書これには、標準ライブラリと拡張のすべてまたはほとんどのデータ構造に関するドキュメントが含まれます。一つあるタイプインデックス。 「GNU C リファレンスマニュアル」もありますが、「GNU C リファレンスマニュアル」と同じではありません。図書館「リファレンスマニュアル」は2つの異なるものです。

データ構造をナビゲートするのに十分な文書を自動的に生成することもできます。強力な酸素(実際のコメント付きコンテンツではうまく機能しますが、この方法でおおよそ使用できます。)ここでこれを試してみましたが、/usr/include2分もかかりませんでした(約800 MBのHTMLが生成されました)。ステップは次のとおりです。

  1. どこかに(どこでも)デフォルト設定ファイルを作成しますdoxygen -g doxygen.conf

  2. ファイルを編集し、次の設定を変更します。

    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
    

    これらのすべてはすでに構成ファイルにあるため、表示されている値を検索して変更/設定する必要があります。

  3. 生産する: doxygen doxygen.conf

今開く/home/foo/whatever/html/files.html。 1つがありますindex.htmlが、おそらくWTFです。したがって、ファイルのリストは最も予測可能なエントリポイントです。豊富な「データ構造インデックス」もありますが、何らかの理由であなたが考えるすべてがここにインデックスされているわけではありません。たとえば、structstat.htmlファイルのリストから見つけることができます。asm 一般 -> stat.hただし、「Data Structure Index」には「struct stat」は記載されていません。多くの標準C libエントリはこのパターンに従います。予測可能なヘッダー()には、sys/stat.hプラットフォーム/システム固有のヘッダーで終わるいくつかの外部項目を取得するマクロ/定義/タイプ定義がありますasm-generic.h。以前もこんなことに気づきました。 statの例は悪くありません。少なくとも最終定義は依然としてstruct stat代わりに呼び出されますstruct _fooX_stat

したがって、慣れるのに時間がかかり、最終的に使用するよりも優れていませんgrep。また、非ユーザーフィールドを含むという欠点もあります(たとえば、struct stat上記の説明と比較man 2 stat)。標準ライブラリ(およびGNU拡張)の場合、リファレンスマニュアルははるかに優れています。それでもWRTマニュアルにないものがないよりはましです。本当にこの方法を使用したい場合は、ディレクトリ全体ではなく個々のディレクトリを独立して使用することをお勧めします(手がかり:そのように設定できますRECURSION = NO)。 800MBのHTMLはかなりかさばる。

おすすめ記事