![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
框架学习
慢爬小蜗牛
很多文章非原创,错误请自行甄别
展开
-
struct timeval结构体
struct timeval结构体在time.h中的定义为:struct timeval{__time_t tv_sec; /* Seconds. */__suseconds_t tv_usec; /* Microseconds. */};其中,tv_sec为Epoch到创建struct timeval时的秒数,tv_usec为微秒数,即秒后面的零头。比转载 2012-09-25 17:53:42 · 688 阅读 · 0 评论 -
malloc分配空间必须首先初始化
一般使用memset()即可原创 2012-09-25 17:55:55 · 6563 阅读 · 0 评论 -
epoll机制
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明: #define转载 2012-09-25 18:34:42 · 732 阅读 · 0 评论 -
malloc与calloc的区别
malloc()与calloc() C语言跟内存分配方式 1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存转载 2012-09-25 17:54:42 · 532 阅读 · 0 评论 -
__attribute__ ((noreturn))得使用
A few standard library functions, such as abort and exit, cannot return. GCC knows this automatically. Some programs define their own functions that never return. You can declare them noreturn to tell原创 2012-09-25 17:59:28 · 6390 阅读 · 0 评论 -
关于Linux Kernel中的宏定义likely和unlikely
在Linux kernel的源代码中,经常能见到if(likely(x))或if(unlikely(x))之类的用法,其确切含义需要说明一下,以便更好的理解kernel的源代码。likely与unlikely这两个宏在linux/compiler.h中的定义如下:#define likely(x) __builtin_expect(!!(x),1)#define unlikely(转载 2012-09-25 18:07:08 · 754 阅读 · 0 评论