【apue學習筆記】之apue.h等頭文件的配置

所有例子在linux-2.6.29.3gcc-4.3.3)下編譯通過(其他平臺請自行測試)。

今天開始學習,linux聖經apue,剛開始myls_c的編程便苦惱了——那個apue.h的頭文件是什麼玩意啊!

經過一番網上查找答案,發現那是作者自己創立的一個頭文件。從網上下載源代碼(可以到我的資源裏下載一下)看了一下。發現:

裏面包括的系統函數調用有:

opnedir(),readdir(),printf(),closedir()和exit()

其中,對於常用的函數prinft()和exit(),它們所在的頭文件一般都知道,分別是<stdio.h>和<stdlib.h>。

而對於opnedir(),readdir()和closedir(),我們可以通過man opendir,man readdir,man closedir得到這三個關於目錄操作的函數所在的頭文件都是:<sys/types.h>和<dirent.h>。這兩個頭文件在源程序中也已經列出。

其次,還用到了作者自定義的兩個函數:err_quit()和err_sys()。發現這兩個函數都在下載的文件\apue.2e\lib\error.c中。

弄清這些以後,我們再來進行一下修改:

1、講自己下載到的文件進行解壓,隨便找地方解壓,我解壓到了用戶的根目錄下/jiao/apue.2e

2、進入目錄目錄/jiao/apue.2e,把文件Make.defines.linux 中的WKDIR=/home/sar/apue.2e 修改爲 WKDIR=/jiao/apue.2e。

3、然後再進入apue.2e目錄下的std目錄,打開linux.mk,將裏面的nawk全部替換爲awk

3.5、這裏按照網上的教程是需要執行make指令的,但是我執行老是會出現錯誤,所以不管他直接執行第四步,但是不知道前三步會不會對後面產生影響,所以仍然把他當做步驟寫出來。

4、把 /jiao/apue.2e/inlcude目錄下的 apue.h 文件最後添加一行 #include "error.c",將該文件拷貝到/usr/include 目錄中。

5、把 /jiao/apue.2e/lib目錄下的 error.c 文件第一行 #include "apue.h"註釋掉或者刪除,也將該文件拷貝到/usr/include 目錄中。

6、編譯成功!!!

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