Http服务器正式版
经过昨天一晚上的奋斗+今天一早上的奋斗,服务器总算是能够真正的使用了。
今天晚上拼了命在写服务器,打算把进程池写出来,反复的翻Unix 环境高级编程,天啊,进程之间的通信真的很麻烦,没对进程都需要两个管道(如果需求移植能力强的话是2个,不然可以是1个。)然后我就放弃了,考虑线程池,但[......]
经过昨天一晚上的奋斗+今天一早上的奋斗,服务器总算是能够真正的使用了。
今天晚上拼了命在写服务器,打算把进程池写出来,反复的翻Unix 环境高级编程,天啊,进程之间的通信真的很麻烦,没对进程都需要两个管道(如果需求移植能力强的话是2个,不然可以是1个。)然后我就放弃了,考虑线程池,但[......]
能够把中缀表达式转换成后缀表达式,是在为http://www.rqnoj.cn/Problem_18.html 这一题做准备,感觉写的还不错,关键是在优先级的处理方面(compare函数),整个代码如下(包含驱动函数main):
只支持+-*^()和变量
#include <stdio.h&g[......]
插入排序其实很好理解,就是保证前i – 1个都是排好序了的,再排第i个,下面这个是从大到小排序的:
/* 从大到小的插入排序 */
void insert_sort(int a[], int n)
{
int i, j;
int key;
for(i = 1; i < n; i++){[......]
这函数真够长的,吓死!
记得我前两天看到别人做的一个程序,用的是自己写的快速排序,而我用的qosrt,结果我的100ms,他的350ms。这程序真贼快的
因为我把每天的倾城都安排好了,所以只有半个小时的时间看,所以没看完,先注释一部分吧,明天再补一部分,估计一下子还看不完。整个qsort的代码如下:[……]
Glibc的效率真的快!快到让我想不到!!!
这个memset跑的贼快~!不过我还是没想通,为什么不用汇编呢?sep movw,速度可能更快!
对memset的注释如下:
C语言: [Codee#12483](http://fayaa.com/code/view/12483/)
void *mem[......]
Glibc的设计确实巧妙的让人想不到,如下strcmp的代码就十分巧妙:
C语言: Codee#12462
int
strcmp (p1, p2)
const char p1;
const char p2;
{
register const unsigned char s1 = (const[......]
在<<Linux 内核完全注释>>里面看到了几次xor ax, ax,很想不通,为什么不直接用mov ax, 0呢?今日到网上一搜才知道,我的天啊,xor ax, ax 只需要计算机2条指令,而mov ax, 0会消耗计算机5指令,什么意思?就是近三倍的速度差别。
[……]
as86(1) &n[……]