自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编程的本质是数学问题

学源码是最快的学习方法

  • 博客(15)
  • 收藏
  • 关注

原创 libcurl使用

#curl-config --libs得到-lcurl #cc libcurl_test.c  -o  libcurl_test -lcurl

2013-10-30 15:46:59 911

翻译 在A*寻路中使用二叉堆

在A*寻路中使用二叉堆作者:Patrick Lester(2003年4月11日更新)译者:Panic 2005年3月28日译者序:    这一篇文章,是“A* Pathfinding for Beginners.”,也就是我翻译的另一篇文章《A*寻路初探 GameDev.net 》的补充,在这篇文章里,作者再一次展现了他阐述复杂话题的非凡能力,用通俗易懂的语句清晰的解释了容易让

2013-10-29 22:23:07 1664

翻译 A*寻路初探

原文:Patrick Lester翻译:Panic 原文出处:A* Pathfinding for Beginners--------------------------------------------------------------------------------译者序  很久以前就知道了A*算法,但是从未认真读过相关的文章,也没有看过代码,只是脑子里有个模糊

2013-10-29 22:10:48 871

原创 Linux内核编译

Linux内核编译1.下载内核https://www.kernel.org/最新的版本是3.11.6# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.11.6.tar.xz下载好源文件以后放置在哪里都可以,我放置在user目录下。 2.解压源文件xz压缩文件方法或命令xz -z 要压缩的文

2013-10-26 17:41:36 1353

原创 Virtualbox安装使用注意

翻转整数位刚看到的一个问题,翻转一个整数位,最直接的想法可能是这样上面的方法虽然直观,但却不是高效的,于是初看有些头晕,其实也很好理解:0x55555555:每个16进制对应4位2进制,5对应0101,所以0101,0101,0101,0101,0101,0101,0101,01010x33333333:0011,0011,0011,0011,0011,0011,0

2013-10-21 18:53:41 1424

原创 nginx源码分析--内存对齐处理

一级指针做形参:首先一定要明白形参和你传递参数的那个实参是两个不同的变量,即使同名也还依然不同。指针传递的是一个变量或者一个值的地址,但是它本身还是采用值传递的方式。即你不能使它指向另外一块地址,但是你可以改变它指向的空间里存的值。二级指针做形参:二级指针也是传值,但是他指向的地址是个一维指针,所以可以改变二维指针指向的地址空间里的内容也就是要申请空间的一维指针,不能改变二维指针本身的值,即不

2013-10-21 16:56:12 3163

原创 指针的本质2-void和void*及其应用在nginx中的应用

char **p,a[6][8]; 问p=a是否会导致程序在以后出现问题? 直接用程序说明:编译,然后就会发现通不过,报错:错误 1 error C2440: “=”: 无法从“char [6][8]”转换为“char **” 于是乎,我看了下《C专家编程》里10.5节—使用指针向函数传递一个多维数组。方法一,函数是 void fun(int arr[2][3]); 这种方法只

2013-10-21 16:53:20 1827

原创 strcpy,memcpy和memmove区别

strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。

2013-10-21 16:51:35 1243

原创 Nginx源码分析--数据对齐posix_memalign和memalign函数

对齐数 据的对齐(alignment)是指数据的地址和由硬件条件决定的内存块大小之间的关系。一个变量的地址是它大小的倍数的时候,这就叫做自然对齐 (naturally aligned)。例如,对于一个32bit的变量,如果它的地址是4的倍数,--  就是说,如果地址的低两位是0,那么这就是自然对齐了。所以,如果一个类型的大小是2n个字节,那么它的地址中,至少低n位是0。对齐的规则是由硬件引

2013-10-20 22:49:13 6395

原创 posix_memalign

翻译的 第八章 二 ;《Linux System Programming》中文版对齐数据的对齐(alignment)是指数据的地址和由硬件条件决定的内存块大小之间的关系。一个变量的地址是它大小的倍数的时候,这就叫做自然对齐(naturally aligned)。例如,对于一个32bit的变量,如果它的地址是4的倍数,-- 就是说,如果地址的低两位是0,那么这就是自然对齐了。所以,如果一个类

2013-10-20 22:48:21 6962

原创 Advanced Memory Allocation 内存分配进阶

May 01, 2003  By Gianluca Insolvibile inEmbedded SoftwareCall some useful fuctions of the GNU C library to save precious memory and to find nasty bugs.Dealing with dynamic me

2013-10-20 22:44:43 1664

原创 C语言清空输入缓冲区的N种方法对比

C语言中有几个基本输入函数://获取字符系列int fgetc(FILE *stream);int getc(FILE *stream);int getchar(void);//获取行系列char *fgets(char * restrict s, int n, FILE * restrict stream);char *gets(char *s);//可能导致溢出,用fgets代

2013-10-18 10:59:10 1142

原创 使用多线程还是用IO复用select/epoll? epoll 或者 kqueue 的原理是什么?

原作者:蓝形参原文:http://www.zhihu.com/question/20114168/answer/14024115使用多线程还是用IO复用select/epoll?多线程模型适用于处理短连接,且连接的打开关闭非常频繁的情形,但不适合处理长连接。多线程模型默认情况下,(在Linux)每个线程会开8M的栈空间,再TCP长连接的情况下,2000/分钟的请求,几乎可以假定有上

2013-10-18 10:46:27 2193

原创 write的奥秘

在Linux下我们在使用设备的时候,都会用到write这个函数,通过这个函数我们可以象使 用文件那样向设备传送数据。可是为什么用户使用write函数就可以把数据写到设备里面 去,这个过程到底是怎么实现的呢? 这个奥秘就在于设备驱动程序的write实现中,这里我结合一些源代码来解释如何使得一 个简简单单的write函数能够完成向设备里面写数据的复杂过程。 这里的源代码主要来自两个

2013-10-17 21:26:43 1965

原创 从Nginx绑定80端口学套接字编程

-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面. 例子用法: gcc -E hello.c > pianoapan.txt gcc -E hello.c | more 慢慢看吧,一个hello word 也要与处理成800行的代码 -E选项,表示让gcc只进行“预处理”就行了。 所谓的预处理,就是把

2013-10-11 09:35:44 1567

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除