上周末开始看《UNIX/Linux系统编程手册》这本书,周末的时间看到第四章,觉得这本书比直接看Linux内核要好接受的多,因为从代码入手,可以更好的理解,比如第三章系统调用的讲解,如果只是理论方面可能比较枯燥,那么这本书中的代码,如何运行呢?
下载代码
这本书的主页.代码版本有两个:
Distribution version: a tarball of the source code that includes extra material not shown in the book. Probably,this is the version of the code that you want.
Book version: a tarball of the source code as it appears in the book.
可以根据自己的选择下载,我下载的是第一个版本,可以点击上面的链接下载,如果下载失败,可以去主页下载.
下载代码,解压之后,如下图所示:
在tlpi-dist目录下执行make,然后去每一个文件下单独查看,可以发现每一个.c文件都生成了对应的可执行文件.在每一个子文件夹中都有一个make文件,有关make的作用我们可以理解为我们写了.c文件要去编译, 由于要包含作者的错误打印等头文件,所以使用gcc不再像我们之前gcc -o hello hello.c这样简单,要用include包含头文件等,而makefile就比较简单,每次代码有更改直接在对应的目录下执行make,就会生成新的可执行文件.
我们以第四章一个代码,作为例子:
我们在运行程序前先新建一个hello,里面存入内容,执行,/copy会看到相应的用法,这是作者利用usageErr打印出来的内容,然后我们按照相应提示去执行,验证,当修改相应代码后,再次执行make,会重新生成可执行文件.
关于第三章的可变参数部分,请参考我的笔记,如果有任何疑问与问题,欢迎与我交流讨论
如果下载代码之后make出错,没有生成相应的可执行文件,请升级gcc版本,参考Segmentfault相应回答