最近在拜读传说中的apue(2e eng),实践是在vmware+FreeBSD7.0环境下做的。
把读书过程中的弱弱的问题写一下,方便后面回顾,咔咔。
前几章的前面看了,就不补了。从Chapter 11. Threads开始写。
Chapter 11. Threads
11.4. Thread Creation
在这一节的实例fig11.2中,输入cc -x c fig11.2 apue.c编译的时候提示:undefined freference to ‘pthread_create',查询了网络上的相 关资源结果,结果是因为thread库不是标准库,在编译时需要加入-lpthread选项即可解决问题,也就是用cc -x c -lpthread fig11.2 apue.c。
11.5 Thread Termination
不知道是FreeBSD7.0做的好还是Vmware牛X,fig11.4示例在我的环境下没有出问题。结果如下图:
FreeBSD7.0 的实现到底怎么了?是apue过时了还是FreeBSD7.0的实现问题?fig11.5的测试结果也有一些问题。按书上来说,正常退出的thread是不会调用thread cleanup handler才对的啊。看来需要看看FreeBSD的内核实现了。我的环境下测试结果如下:
2009-02-18,今天继续,突然觉得linux有点太自由了,给我们学习带来了少量的不便(发展太快了,跟不上啊)。哈哈。
最近在看chapter 14 advanced IO,书中第一个例子,fig14.7 isastream示例在我的ubuntu8.10(刚刚装了个ubuntu8.10来看看传说中的ubuntu,呵呵)上跑下来发现/dev/tty不是一个stream。