系统程序员成长计划
hongchunhua
这个作者很懒,什么都没留下…
展开
-
LINUX共享内存mmap
很多事情看起来很简单,但是动起手来,发现会有很多问题我们刚开始没有考虑到的。我们知道LINUX下的一种进程间通信叫共享内存,也就是使用mmap来实现。首先介绍一下mmap这个函数http://linux.die.net/man/2/mmap这个函数可以分为两种使用方式,一种是将文件映射,另一种就是内存映射。区别再于是否设置了MAP_ANONYMOUS,如果设置了这个flag,那么就意味原创 2011-10-24 14:52:44 · 744 阅读 · 0 评论 -
可变参数实现分析
代码分析va_list 定义成指针va_end 空定义va_arg 取下一个变量地址va_start 取的第一个参数后面参数的起始地址#include #define va_list void *#define va_end(arg)#define va_arg(arg, type) *(type *)arg; arg = (char *)arg + siz原创 2011-10-24 15:37:36 · 331 阅读 · 0 评论 -
排序算法总结
1,最简单的排序算法:冒泡排序 特点:简单直观,在数据量小时,所有排序算法性能差别不大。2,性能优异算法:快速排序特点:性能优异,不需要额外空间,数据量大而且全部在内存中时,首选。采用分而治之的方式降低复杂度。3,数据无法完全加载到内存:归并排序特点:不要求将所有数据全部加载到内存中。原创 2011-10-25 17:48:03 · 296 阅读 · 0 评论 -
问题集
1,函数返回值应该怎么设计,根据不同错误返回不同?当前的一个看法是返回值-1为错误,>=0 为正确,同时按照不同功能标示不同结果。在错误情况下,不同情况不同日志进行错误提示。2,函数设计成多处返回还是用goto统一到最后返回?原创 2011-10-25 11:18:12 · 261 阅读 · 0 评论