发布时间:2020-03-11 08:07:55
看内核时总遇到if(likely( )){}或是if(unlikely( ))这样的语句,最初不解其意,现在有所了解,所以也想介绍一下。likely() 与 unlikely()是内核(我看的是2.6.22.6版本,2.6的版本应该都有)中定义的两个宏。位于/include/linux/compiler.h中,具体定义如下:#define likely(x) __builtin_expect(!!(x), 1)#define u.........【阅读全文】
发布时间:2015-09-24 13:40:34
堆和栈的区别1. 管理方式不同栈,由编译器自动管理,无需程序员手工控制;堆:产生和释放由程序员控制。2. 空间大小不同栈的空间有限;堆内存可以达到4G,。3. 能否产生碎片不同.........【阅读全文】
发布时间:2015-09-23 08:08:25
listen函数是网络编程一个基本的函数,而且它的backlog参数却是和TCP协议息息相关的。我们来看一下一个backlog参数到底有多少秘密。一、 为了理解backlog参数,我们必须首先认识listen函数。点击(此处)折叠或打开#include<sys/socket.h>int listen(int sockfd, int backlog); listen函数仅由TCP服务器调用,它做两件事情:1、当socket函数创建一个套接口时,它被假设为一个主动套装口,也就是说,它是......【阅读全文】