摘要:
http://www.cnblogs.com/chio/archive/2007/11/24/970632.html volatile char a; a=0; while(!a){ //do some things; } do_other(); 如果没有 volatile, do_other()不会被执行。 volatile极易改变的意思。 表示用volatile定义的变量会在程序外被改变,每次都必须从内存中读取,而不能把他放在cache或寄存器中重复使用。 在中断程序中经常会用到。 阅读全文
摘要:
头文件:#include <sys/time.h>#include <sys/resource.h>原型:int getpriority(int which, int who);int setpriority(int which, int who, int prio);参数:which为PRIO_PROCESS,则who指定进程ID;which为PRIO_PGRP,则who指定进程组ID;which为PRIO_USER,则who指定用户ID.who为0,代表调用该函数的当前进程ID,进程组ID或用户ID.prio -20---19,一般默认为0,pri越小,优先级越高, 阅读全文
摘要:
TCP有个套接字选项TCP_NODELAY设置这个选项可以禁止Nagle算法。 解决的问题: 小包问题,如从键盘输入的一个字符,占用一个字节,可能在传输上造成41字节的包,其中包括1字节的有用信息和40字节的标题数据,这种情况转变成了4000%的消耗。 Nagle算法要求,一个TCP连接上最多只能有一个未被确认的未完成的小分组。 阅读全文
摘要:
为什么要有内联函数,即内联函数的作用内联函数是为了避免调用函数的开销。内联函数不是在调用时发生转移,而是在编译时将函数体嵌入到每个内联函数调用处。类似于宏定义,如宏定义:#define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))但是宏定义并不能进行参数有效性的检查等。所以,可以这么理解,内联函数是宏定义的扩展,消除了宏定义不能进行参数有效性检查等缺点。或者这么理解,编译时,内联函数在调用处展开,以目标代码的增加为代价换取时间上的节省。什么时候用内联函数 阅读全文