发布时间:2013-01-23 11:52:42
现象:在linux中使用fopen第2个参数为"r"或"w"打开二进制文件后读写没有任何问题,但将代码移到windows后,读写却出现了异常。将参数改成"rb"和"wb"后,读写正常。原因如下(转载):在学习C语言文件操作后,我们都会知道打开文件的函数是fopen,也知道它的第二个参数是标志字符串。其中,如果字符串中出.........【阅读全文】
发布时间:2013-01-09 11:44:55
volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatile int i=10; int j = i; ... int k = i; volatile 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编译器生成的可执行码会重新从i的地址读取数据放在k中。 而 优化做法是,由于编译器发现两次从i读数据的代码之间的代码没有......【阅读全文】
发布时间:2013-01-06 14:02:06
第3章 Nginx内存管理 内存管理是各个WEB服务器都相继实现了的独立功能,作为一个满足高性能的WEB服务器,面对各种请求和应答处理流程,必然涉及到内存以及连接的分配与管理,如果完全采用标准的malloc/free函数接口实现内存管理,频繁的调用必然引起性能的低效。Nginx也不例外,采用了短小精干的方式,实现了其特有的内存管理方式。通过这部分的分析学习,希望我们也能达到融会贯通的目的,不仅能深入理解Nginx的内存管理机制,在实际应用中也能学到其独特的机制,并加以运用。对于开发Nginx模块来说,就更要熟悉其内存管理的相关接口。 内存相关的操作主要在文件 os/unix/ngx......【阅读全文】