在学习apue 的第一章节就遇到了困难
书中的第一个例子:列出当前目录下的目录
#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);
}
在代码的第一行需要导入apue.h
头文件肯定编译不过的所以需要自己手动处理一下
按照网上的方法试了很多都行不通,想了下怎么会这么复杂为什么要需要去编译它???
于是按照的自己的想法弄好了
步骤如下:
1、下载源码
http://www.apuebook.com/code3e.html
2、拷贝文件
sudo cp ./include/apue.h /Library/Developer/CommandLineTools/usr/include
&&
sudo cp ./lib/error.c /Library/Developer/CommandLineTools/usr/include
注意:
如果没有/Library/Developer/CommandLineTools/usr/include
可以先装xcode
直接应用商店下载就可以了
3、修改源码
vim /Library/Developer/CommandLineTools/usr/include/apue.h
文件末尾加上 #include “error.c”
接下来ls程序就可以直接编译了