gnu libc源代碼的一些想法

這幾天因爲看一個Linux的項目源代碼,很多函數都是gnu libc中的代碼。於是萌發了初步瞭解gnu libc 源代碼的想法。

遇到的第一個問題是如何理清各個源代碼文件夾之間的關係,第一次看源代碼文件夾部分是這樣的:
這裏寫圖片描述
這個時候我是懵逼的,完全不清楚這文件之間的關係。

glibc解壓之後的include文件夾是編程時主要的文件夾。而include文件夾只包含頭文件,不包含各種函數和變量的定義。可以這麼說,include裏面的頭文件是將其他模塊的實現匯聚過來以方便調用。匯聚方式是通過include預處理指令例如

    #include<libio/stdio.h>

這是將libo文件夾下的stdio.h頭文件引用過來,而在libio文件夾下也確實存在stdio.h和stdio.c文件。在理清這種glibc的關係之後,接下來需要做的是理解各個模塊的具體含義、作用以及該模塊下的一些常用函數的用法,這是一個比較耗時間的活計。如果有必要有需求接下來就要了解函數的具體事現以及自己的實現。關於c++這一系列問題將會一篇一篇寫下去。

gcc一些編譯問題:
1、如Linux下C程序的頭文件到哪查找:
https://blog.csdn.net/lwb102063/article/details/50283507
2、gcc:預處理語句--#include和#include_next
https://blog.csdn.net/rznice/article/details/7641549
3、glibc源代碼的初步閱讀
https://blog.csdn.net/sulit/article/details/25539215
4、gnu c 預處理的一些知識
http://tigcc.ticalc.org/doc/cpp.html#SEC4

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章