是否有用於資料結構定義的 man 部分或其他文件儲存庫?
第一百萬次左右,我不得不
/usr/include/foo.h
尋找一個或什麼的struct foo
成員foo_t
。有一個用於庫和核心呼叫的手冊部分,其中一些包括資料結構的描述,而另一些則不包括。是否有一個地方可以查找核心和庫資料結構的定義?
GNU C 庫有一個參考手冊,其中包括標準庫和擴展中所有或大部分資料結構的文件。這有一個類型 index。注意還有一個“GNU C 參考手冊”,但它和“GNU C庫參考手冊”是兩個不同的東西。
您還可以自動生成足以使用doxygen瀏覽資料結構的文件(請注意,它對於實際為其註釋的內容效果更好,但可以粗略地使用這種方式)。我在這裡嘗試過
/usr/include
,它花了 < 2 分鐘(生成,nb,~800 MB 的 html)。步驟是:
- 在某處(任何地方)創建一個基本配置文件,
doxygen -g doxygen.conf
.- 編輯文件並更改以下設置:
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
。有一個index.html
,但它可能是 WTF 的(同樣,doxygen 主要用於有意為其註釋的內容),因此文件列表是最可預測的入口點。還有一個豐富的“資料結構索引”,但無論出於何種原因,並非您認為的所有內容都在其中編入索引。例如,structstat.html
您可以通過文件列表asm-generic -> stat.h 訪問,但“資料結構索引”中未提及“struct stat”。許多標準 C lib 的東西都遵循這種模式:在可預測的標頭檔sys/stat.h
(asm-generic.h
. 我相信你之前已經註意到了這一點。struct stat
至少最終定義仍然被呼叫而不是stat 範例並沒有那麼糟糕struct _fooX_stat
。所以這需要一些時間來適應,最終,並不比使用
grep
. 它還具有包含非使用者欄位的缺點(?)(例如,將struct stat
上面記錄的 與 中的描述進行比較man 2 stat
)。對於標準庫(和 GNU 擴展),參考手冊要好得多。但是,該手冊中沒有的 WRT 內容,總比沒有好。我建議如果您確實想以這種方式使用它,最好獨立執行單個目錄而不是整個 shebang(提示:您可以設置RECURSION = NO
)。800 MB 的 html 相當笨重。