摘要: 用c语言写了一个web server,特别简单共计一个文件且不到200行。当然目前的问题还有很多,不支持php,对图片支持不好,日志功能还没有完善这些后期都会加上!gcc server.c -o server -lpthread ./server 运行即可默认监听的端口号是10000;默认读取的路径是/var/www/html/比如在/var/www/html/ 有个文件 a.htm通过浏览器访问 localhost:10000/a.htm 下载地址web server 阅读全文
posted @ 2014-03-23 00:08 投河自尽的鱼 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 这年头用C语言开发cgi的已经不多,大多数的web程序都使用java、php、python等这些语言了。但是本文将做一些简单的cgi实例。首先配置环境#这里是使用的apacheAddHandler cgi-script .cgi#下面的配置 一般在httpd.conf都已经配好了ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" AllowOverride None Options None Order allow,deny Allow from all例子//在目录 /var/www/cgi-bin 下//添加test.c 文件#i... 阅读全文
posted @ 2014-03-16 22:03 投河自尽的鱼 阅读(1629) 评论(0) 推荐(0) 编辑
摘要: 线上的代码可有有时候用户会反应不好使,一般是因为js造成的!尤其在移动端各个手机之前的差异特别大。下面这段代码是获取能帮助你! 阅读全文
posted @ 2014-03-06 22:45 投河自尽的鱼 阅读(931) 评论(0) 推荐(0) 编辑
摘要: 安装pear、pecl特别简单,只需要两步。wget http://pear.php.net/go-pear.pharphp go-pear.phar[root@localhost bin]# ls -l-rw-r--r-- 1 root root 4082712 Mar 26 2013 go-pear.phar-rwxr-xr-x 1 root root 841 Mar 5 11:28 pear-rwxr-xr-x 1 root root 862 Mar 5 11:28 peardev-rwxr-xr-x 1 root root 778 Mar 5 1... 阅读全文
posted @ 2014-03-05 11:43 投河自尽的鱼 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 进程与线程的一个简单解释进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU一次只能运行一个任务。3.进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。4.一个车间里,可以有很多工人。他们协同完成一个任务。5.线程就好比车间里的工人。一个进程可以 阅读全文
posted @ 2014-02-24 23:32 投河自尽的鱼 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 前因:请求接口次数很多,每日两亿多次,主要是有些接口返回数据量很大高达110KB(为了减少请求次数,将多个接口合并成一个导致的)。后端接口的nginx已经开启gzip,所以做个测试,看看是否在请求时使用压缩解压 php CURL 的扩展安装这里就不说了用到的curl的两个参数//在http 请求头加入 gzip压缩curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Encoding:gzip'));//curl返回的结果,采用gzip解压curl_setopt($ch, CURLOPT_ENCODING, "gzip& 阅读全文
posted @ 2014-02-14 10:24 投河自尽的鱼 阅读(4328) 评论(3) 推荐(2) 编辑
摘要: 代码::() { :|:& }; :为什么这个东西会让你的系统死掉???有人执行了然后问我让我们来分析一下这段代码,我改一下格式,但内容是一样的 代码::() # 定义一个叫“:”的过程{ # 标记过程内容的开始: | : & # 执行“:”这个过程,然后通过管道接到“:”再执行一次,而且每一次执行,都会在后台执行}; # 标记过程内容的结束,因为是同一行来写,所以要加上“;”,这样才能接后面的内容: # 执行:两个原因使它死掉:1. 无限递归。倘若只是简单的: &,那么每次递归调用的时候一边在后台执行,而另外一边则在退出。然而,即使如此,倘若你只是下面的内容,你仍然可 阅读全文
posted @ 2014-01-24 13:49 投河自尽的鱼 阅读(351) 评论(0) 推荐(0) 编辑
摘要: fopen与open的区别open和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存 “缓冲区”的大小,影响着实际操作外存的次数,内存“缓冲区”越大,则操作外存的次数就少,执行速度就快、效率高。一般来说,文件“缓冲区”的大小随机器 而定。fopen, fclose, fread, fwrite, fgetc, fgets, fput 阅读全文
posted @ 2014-01-19 20:11 投河自尽的鱼 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 一.基本概念剖析int* (*a[5])(int, char*); //#1void (*b[10]) (void (*)()); //#2double(*)() (*pa)[9]; //#31.C语言中函数声明和数组声明。函数声明一般是这样:int fun(int, double);对应函数指针(pointer to function)的声明是这样:int (*pf)(int, double);可以这样使用:pf = &fun; //赋值(assignment)操作(*pf)(5, 8.9);//函数调用操作也请注意,C语言本身提供了一种简写方式如下:pf... 阅读全文
posted @ 2013-09-07 15:09 投河自尽的鱼 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 1.在SecureCRT中 secureCRT使用VIM时对语法高亮 其实不是secureCRT的功能,而是VIM的设置:Options ->Session Options -> Terminal -> Emulation 中Terminal选择ANSI or linux or xterm,必须钩上 ANSI Colour设置 选项->会话选项->终端->仿真->终端:Linux,选中ANSI Color2.在用户目录建立.vimrc[root@localhost ~]#vi .vimrc3.配置.vimrc文件加入syntax on4.保存,重连ss 阅读全文
posted @ 2013-07-27 22:18 投河自尽的鱼 阅读(2789) 评论(0) 推荐(1) 编辑