UNIX環境高級編程(第三版)中的例子用到apue.h這個頭文件,可是書裏面寫的地址已經不能訪問。linux
通過一番查找以後,找到以下解決方案:編程
一、到www.apuebook.com上下載第2版的源碼,也能夠直接點這裏。函數
二、下載後的源碼,須要修改一下:ui
一、Make.defines.linux中第6行WKDIR=/home/sar/apue.2e更改成目錄的絕對路徑。ip
二、apue.2e/ipp/ipp.h中第122行中的status換爲Status。(也可換爲其餘,但要與下面對應)get
三、apue.2e/ipp/printd.h中第977行中的status替換爲Status。(與上面對應)源碼
四、apue.2e/threadctl/getenv1.c和/root/apue.2e/threadctl/getenv3.c中第1行#include <limits.h>更換爲#include <linux/limits.h>it
三、在apue.2e目錄執行make命令進行編譯。若是編譯經過,會在apue.2e/lib/目錄下生成libapue.a靜態連接庫文件。編譯
四、apue.2e/lib/libapue.a拷貝至/usr/local/lib/目錄下。thread
五、apue.2e/include/apue.h拷貝至/usr/local/include/目錄下。
六、完成,但編譯時要加上-lapue指令,例如編譯test.c文件,執行:gcc test.c -lapue
補充說明:程序裏面的err_quit,err_sys等等函數在apue.2e/lib/error.c中, error.c 實現apue.h中的出錯處理函數。
固然,若是按照上面的步驟製做了libapue.a庫的話,不須要單獨包含error.c