在下载src.tar.gz源代码的压缩包。
1、解压至/home/目录下
2、进入/home/apue.2e ,修改 Make.defines.linux中的WKDIR=/home/xxx/apue.2e,为WKDIR=/home/apue.2e
3、然后进入apue.2e/std 目录,修改linux.mk,将里面的nawk全部改为awk,可以使用这个命令 :%s/nawk/awk/g
4.然后把 /home/apue.2e/inlcude 目录下的 apue.h 文件和位于 /home/apue.2e/lib 目录下的 error.c 文件都复制到 /usr/include 目录下
5. 最终还要编辑一下复制过来的 apue.h 文件 , 在最后一行 #endif 前面添加一行 #include “error.c”
6.提示ARG_MAX未定义,可以这么修改。
在apue.2e/include/apue.h中添加一行:
#define ARG_MAX 4096
打开apue.2e/threadctl/getenv1.c 和apue.2e/threadctl/getenv3.c,添加一行:
#include “apue.h”
7. 改好后make clean再重新make
8. 打开1-1程序,在#include
"apue.h"下面加上一行#include "error.c"
#include "apue.h"
#include "error.c"
#include
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);
}
阅读(1801) | 评论(0) | 转发(0) |