[apue读书笔记] 实现ls命令
unix哲学 – 一切皆文件
apue的第一个例子就是实现一个简单的ls命令
1 |
|
然后我们运行
1 |
|
这时候会出现错误 找不到apue.h的头文件
我们复制附录B中的头文件代码于当前目录。
然后重新运行,产生如下错误:
1 |
|
这里提示缺失_err_quit 和 _err_sys的二进制代码。
这个问题处理困扰了我好久,原因就是确实错误处理的库文件。
我们复制附录B中的error.c的错误处理代码。
先使用如下命令将其编译为二进制文件:
1 |
|
产生新的文件 error.o
然后用ar命令打包这个link文件
1 |
|
生成liberror.a的静态链接库文件
将连接库放入lib目标下
1 |
|
然后使用如下命令编译
1 |
|
生成myls.out文件
1 |
|
可以获得当前目录文件信息
GCC编译指令 -L 指定库的路径-l 指定需连接的库名
opendir()用来打开参数name 指定的目录, 并返回DIR*形态的目录流。包含在#include
中
本文Github源码地址 :https://github.com/JohnDoe117/aque_learn/tree/main/chapter01