解压源码
tar -zxvf src.3e.tar.gz
编译
make
出现/usr/bin/ld: cannot find -lbsd 错误
解决方法:添加libbsd.a的静态链接库
sudo apt-get install libbsd-dev
再次make则成功
make
安装apue.h文件及其对应的静态链接库libapue.a,libapue.a是apue.h头文件中包含的所有函数及宏定义的具体实现,是一个静态链接库。
sudo cp ./include/apue.h /usr/include/
sudo cp ./lib/libapue.a /usr/local/lib/
编写ls.c代码
#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);
}
调试代码
gcc ls.c -o ls -lapue
生成了ls*
./ls /home/weiyi/study/apue.3e
- 效果如下