初学linux内核代码,将学习中的一些知识点保存起来,方便以后查阅。
list_entry宏是用来根据list_head指针查找链表所嵌入的结构体的地址,具体查找方法如下:
#define list_entry(ptr, type, member) \ container_of(ptr, type, member)
list_entry只是一层封装,实际上起作用的是container_of宏,
#define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member )...
前段时间,一个朋友发来邮件,说在RedHat Linux 9.0 操作系统的机器上,编写了一个服务程序。该服务程序用Ctrl+C终止后,不能够马上重新运行。出现地址绑定错误,也就是调用bind()函数时,出现错 误。但过了几分钟后,即可以正常运行。不明白原因,并希望能给于解决。 首先,来了解出现这个问题的原因。如果出现上面的情况,可以用 netstat -an 命令查看一下,就会发现那个服务程序所使用的端口处在CLOSE_WAIT状态。当程序执行主动关闭的时候,就会进入这种状态。还有一种情况,就是客户端 还在保持连接,但服务器却意外终止,这种情况,也会有这种状态产生,特别是在一些老的UN...