apue.h头文件不是系统自带的,在此下载全书的源代码:
http://www.apuebook.com/src.tar.gz
解压即含apue.h头文件。但仅此头文件书中的源代码还不能直接编译,如ls(1)的源代码:
#include "apue.h"
#include <dirent.h>
int
main(int argc,char *argv[])
{
DIR *dp;
struct dirent *dirp;
if(argc!=2)
err_quit("usage: ls directory_name");
if((dp=opendir(argv[1]))==NULL)
err_sys("can't open %s",argv[1]);
while((dirp=readdir(dp))!=NULL)
printf("%s\n",dirp->d_name);
closedir(dp);
exit(0);
}
err_sys函数的定义不包含在头文件中。复制figB.3为error.c,然后多加句“#include "error.c"”就能通过编译了。