断断续续每天抽出下午的时间差不多用了3个月看完了这本书,期间也顺带学习了makefile、gcc、valgrind等工具(学习编程是很有必要接触Linux的,可惜我接触的比较晚,之前的学习总是局限在Windows的Visual Studio上!),可以说这本书让我成长了不少,不愧是经典之作。
回到书中的内容,我认为看1-17章的内容即可,我自己把全书的内容按照自己的想法分成如下6个部分:
- UNIX基础与标准
- 文件目录与I/O
- 进程
- 线程
- 守护进程和高级I/O
- 进程间通信
全书脉络清晰,提纲挈领,又有很多不错的实例,我相信每一个看完这本书的人都会受益匪浅。不过在一些内容上我觉得作为后起之秀的《Linux/UNIX系统编程手册》有很多不错的地方或者说更好,至少我看的进程间通信、epoll这些部分是这么觉得的。两本书一起结合参考着看我觉得是一种不错的选择。
自己写的代码不咋地,有很多不足之处,欢迎交流😂
OS: Manjaro Linux x86_64
Host: HP ENVY Notebook
Kernel: 5.8.11-1-MANJARO
Uptime: 6 hours, 27 mins
Packages: 1204 (pacman)
Shell: zsh 5.8
Resolution: 1920x1080
Terminal: /dev/pts/0
CPU: Intel i5-6200U (4) @ 2.800GHz
GPU: Intel Skylake GT2 [HD Graphics 520]
GPU: NVIDIA GeForce GTX 950M
Memory: 471MiB / 15911MiB
由于前面的章节自己仍然使用了书中给出的头文件和链接库,所以需要对原书中的提供的链接库进行编译。但是到了后面章节我自己重新写了自己的头文件MyAPUE.h并同时重新实现其中的内容,为此若要使用后面章节的程序,还需要编译我自己写的链接库。这些程序至少在我的Manjaro系统上都是🆗的!
编译原书中的链接库、头文件并放入到目录中:
$> cd apue.3e
$> make
$> mv libapue.a /usr/lib
$> cd ../include
$> mv apue.h /usr/include
将我的自己的链接库进行编译
$> #假设当前目录为仓库根目录
$> cd lib
$> make
后面每一章节的内容使用make命令就可以一步到位编译完毕
- UNIX高级环境编程
- Linux/UNIX系统环境编程
- 跟我一起写Makefile