- 博客(77)
- 资源 (27)
- 收藏
- 关注
原创 浏览器桌面通知(notifications)
最近在做公司后台管理系统,当有任务到来时,需要通知当事人,但是 当事人有可能在做别的,浏览器有可能会被最小化,这样就很难看到通知了。经过查找发现有些浏览器可以使用noitfications。可以在桌面的通知区域内显示一个提示框,并且显示在桌面的最前面,很方便就能看到了。我就将它简单的封装一下,使其符合常用的使用场景。功能效果类似webQQ的消息提示通知。项目地址:https:/
2014-04-28 17:31:42
4707
原创 堆排序
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。由于堆是一个完全二叉树的结构所以我们在存储的时,使用线性链表或者数组存储。堆排序有最大堆或者最小堆。其实堆排序是一个递归的过程。让所有子树也是一个最小(或者最大)堆。 堆排序的过程有两步:1. 建立最小(或最大
2014-02-16 16:30:14
2684
原创 base64编码/解码的实现(C语言)
base64的作用不是加密,而是用来避免“字节”中不能转换成可显示字符的数值。比如0-32的控制字符,空格,制表符都不能被打印在纸上,通过base64转换可以打印在纸上,数据可以在传统平面媒介上携带。base64特别适合在http,mime协议下快速传输数据。转换的规则,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位。数据不足3byte的话,于缓冲区中剩下的b
2013-11-30 10:30:00
3736
原创 面试总结
1. 链表的逆转参考《剑指offer》2.找到链表中倒数第K个元素使用两个指针,pstart,pend,先让pend指向第k个元素,然后pstart和pend都向后移动。当pend的下一个为空。pstart的下一个就是需要查找的元素3. session 和cookie的区别存储位置session是存储在服务端的,在关闭浏览器后...
2013-10-31 13:59:37
2428
原创 全排序算法的实现
一个全排列函数:如p([1,2,3]) ,输出: [123],[132],[213],[231],[321],[323]。#include #include #include void full_sorting(char strin[]){ int len = strlen(strin); char *isuse = (char *)calloc(len, siz
2013-07-31 20:31:45
2460
原创 postfix实现邮件发送的简单配置
1安装postfix。使用 rpm –qa postfix检查是否安装了postfix,如果没有,使用yum install postfix。2 配置/etc/postfix/main.cf [root@reage ~]# vim /etc/postfix/main.cf ←编辑Postfix的配置文件#myhostname = host.domain.tl
2013-07-10 21:46:31
17791
1
原创 CentOS6.4可以读写ntfs磁盘设备的方法
我先在使用的是双系统win7和CentOS6.4。在CentOS中无法识别win7中的硬盘。但是man mount的时候,在-t参数中有ntfs的选项。但是挂在的时候总是提示出错。mount -t ntfs /dev/sda1 /mediamount: unknown filesystem type 'ntfs'经过查找得知,CentOS默认是不安装ntfs格
2013-06-30 10:40:23
3745
原创 CentOS6.4关闭触控板
1. 检查是否安装xorg-x11-app; rpm -qa xorg-x11-apps 如果没有安装使用下面命令安装xorg-x11-app yum install xorg-x11-apps2.查看在图形模式下可用的输入设备 xinput list 我的电脑显示的是如下结果 [root@reage input]# x
2013-06-26 11:03:27
3216
原创 Cent0S6.4 安装virtual box 增强功能失败的解决方案
今天在virtual box新装了一个CentOS6.4系统。但是在安装增强功能的时候。总是提示失败。在安装脚本执行到“building the main Guest Additions module FAILED”,以前没有遇见过这个问题,想想发现今天安装的是最小桌面的,可能是因为这个问题,用“rpm –qa|grep gcc” 一下发现gcc没有安装,这样怎么可以呀。然后我就一次执
2013-06-17 22:11:06
4689
原创 CentOS添加一个新的硬盘分区到挂载的过程
1.分区分区工具fdisk用法介绍 fdisk命令参数介绍 p、打印分区表。 n、新建一个新分区。 d、删除一个分区。 q、退出不保存。 w、把分区写进分区表,保存并退出首先使用fdisk -l 查看系统中的所有硬盘和分区信息。我们可以看出sdb是我新添加的一个硬盘,8G大小,没有任何分区。。在新建分区的时候,输入“n”命令之后,
2013-06-08 22:11:50
8338
原创 web服务器对url中的相对路径的处理("./", "//","../")
本次为了方便展示和调试,并没有将代买写入到真实的运行环境,而是单独写了一个test程序,使用的思路主要是回溯。首先记录本次的开始位置,情况一:如果本次得到内容时“./”,回溯到本次开始匹配的位置即可。情况二:如果本次得到的内容是"/",回溯到本次开始匹配的位置即可。情况三: 如果本次的到的内容时“../",首先回溯到本次开始匹配的位置,并且删除上一级目录其他情况: 直接写入本次
2013-05-13 21:39:43
4943
原创 VNC配置和安装
文档声明:CentOS5.4的桌面版上的安装过程。本文仅是个人的安装过程,其中软件的配置方案仅是根据个人需要选择,可能无法满足所有的需要。其中的配置也可能因为个人能力问题造成配置是错误、不是最优或者配置了多余的选项,请大家谅解。 端口, 端口默认是从5900开始,再加上你的桌面号。 比如你的桌面号为1,则vnc的连接端口号为5900+1=5901
2013-05-07 09:06:13
3489
原创 centos服务器配置一 网卡配置(linux、网卡自动启动)
1.转到存放网卡配置信息目录cd /etc/sysconfig/network-scripts/ls你会发现一些以ifcfg开头的文件,如ifcfg-eth0、ifcfg-eth0、ifcfg-lo、ifcfg-usb0等等。ifcfg代表的是网卡的配置文件。eth、lo、usb代表的是网卡设备的类型,后面的数字表示是在同一类行中的设备中的几个设备,例如ifcfg-eth0表示的是et
2013-05-02 19:52:40
6540
原创 linux shell批量拷贝文件
有时候我们需要将一个文件拷贝好几分。批量添加用户也是同样的原理的。使用到的知识:test 或 [ :可用来表示比较的算数比较-eq 相等-ne 不等-gt 大于-ge 大于等于-lt 小于-le 小于等于! 取反文件条件测试-d 是否为目录-f 是否为文件-g 文件的se
2013-04-25 21:02:57
5437
转载 查找目录下的所有文件中是否含有某个字符串 linux
查找目录下的所有文件中是否含有某个字符串 查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l 1.正则表达式 (1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(
2013-04-11 10:56:23
3097
原创 C语言贪吃蛇游戏
突然发现一段上大一些的C语言程序。一个贪吃蛇的游戏。可以显示分数。蛇在一定的区域内移动。食物可以闪烁。只能在winxp上运行。当时我是在tc上调试陈宫。但是不知道这是不是最后代码。可能会出现问题。如果有问题请大家谅解。一下是代码。#define N 200#include #include #include #define LEFT 0x4b00#define RIGHT 0x4
2013-04-02 15:58:25
3328
原创 vsftp在CentOS安装和简单配置
1. 转到vsftp rpm包的位置(我是用的是系统盘中的/media/CentOS-5.9_Final/CentOS中)2. ls |grep “vsftpd” 查找vsftpd安装包3. rpm –ivhvsftpd-2.0.5-28.e15.X86_64.rpm4. /etc/init.d/vsftpd start 启动vsftpd5.
2013-04-01 15:32:29
3096
原创 多维数组的实现
数组一旦被定义了,它的维数和维界就不会变。因此,除了结构的初始化和销毁之外,数组只有存取元素和修改元素。数组一般分为行序和列许。一般系统都是用的行许。以2维数组a[m][n]为例列序:a[0][0] a[1][0] ...... a[m-1][0].............a[m-1][0] a[m-1][1] ...... a[m-1][n-1]行序列:
2013-03-29 16:16:27
1545
原创 威威猫系列故事——吃鸡腿(3月25号腾讯编程马拉松大赛 )
试题地址:http://acm.hdu.edu.cn/showproblem.php?pid=4525题目说明:威威猫不是一只普通的猫,普通的猫喜欢吃鱼,但威威猫最喜欢吃鸡腿。他每天都在不停的吃啊吃,吃了一只又一只鸡腿。现在他遇到了一个难题,如果他的体重太胖那么他的主人就不给他吃鸡腿了,所以他需要你的帮助。 威威猫的身体由n个器官构成,由于他的身体很特殊所以他的增长也很特殊(不要问为
2013-03-27 19:20:55
1713
转载 C语言正则表达式的几个函数
1.int regcomp (regex_t *compiled, const char *pattern, int cflags) 这个函数把指定的正则表达式pattern编译成一种特定的数据格式compiled,这样可以使匹配更有效。函数regexec 会使用这个数据在目标文本串中进行模式匹配。执行成功返回0。 regex_t 是一个结构体数据类型,用来存放编
2013-03-27 15:45:41
1738
原创 自己动手写web服务器之虚拟端口支持
为什么需要支持虚拟端口? 如果不支持虚拟端口,每一个ip只能对应一个网站。再对应别的域名就需要加端口了。支持虚拟端口的原理?? 首先,我们知道,当多个域名与一个ip相对。DNS只能提供ip地址,无法提供端口号。所以web browser无法知道多个域名与一个ip对应的时候那个域名应该使用哪个端口。当用户不能提供端口web browser只能使用80默认端口了。
2013-03-26 17:30:34
2237
原创 基于epoll实现的一个简单web服务器
本文使用epoll建立一个简单的web服务器。通过epoll实现对过个端口的管理,非阻塞的数据发送。(注意本文中的使用没有错,但是在实际应用中是无法处理同一时间超过五个以上的链接,稍后会写出可以处理大批量的链接的代码。)使用到数据结构typedef union epoll_data { void *ptr; int fd;
2013-03-17 09:39:39
2911
原创 使用shell关闭占用某一个端口的程序
有时候我们经常要结束占用某些端口的程序。如在Linux中做socket开发的时候。我们可以使用以下命令的:(假设我们呀关闭占用80端口的程序)kill -9 $(lsof -i:80|tail -1|awk '"$1"!=""{print $2}')//$用户获取命令的执行结果但是每次我们都这样写多麻烦呀。所有可以写成一个shell脚本文件。方便使用了#!/bin/bash
2013-02-26 21:22:35
5268
原创 C语言插件开发模式
以前总是不明白为什么不同的模块是相互独立的编译,相互之间不存在的调用关系, 怎么做到在使用的时候加载不使用的时候卸载掉? 现在总算是明白了。其实就是将一个功能做成一个动态库,在window中叫dll,在Unix/Linux中叫做so。通过配置在运行的时候,在运行的时候,通过一些特殊的函数对dll或者so进行操作。找到函数的地址,调用函数。在使用函数的时候找函数,不是使用的时候释放就可...
2013-02-24 00:06:17
4696
6
原创 使用shell编写的一个简单的时钟(tput和date介绍)
在终端显示一个简单时钟。格式是“年--月--日 时:分:秒 星期” 主要适用tput用来控制鼠标位置和date命令获取时间效果如下图:tput命令参数介绍: tput civis :用来隐藏光标 tput cols :显示当前所在的列 tput lines :显示当前所在的行 tput cup lines cols : 将光标移动
2013-02-17 21:35:24
3378
1
原创 正则表示学习总结
[]:要匹配的内容的范围 直接要匹配的内容写入[]中间即可 eg:在所有的信息中匹配1,2,3,4出现的位置,写成[1234]- :表示连续,(是减号,并非下划线)eg:你要匹配所有的英文字母,用上面的写法太麻烦了,使用-将会很简单做到,就可以写成[A-Za-z]就行了,注意x - y其中x ^ :排除,不包含eg:有时候我们会匹配一些相
2013-02-16 18:52:27
1879
原创 大学三年半的总结
在大学中度过了三年半,从大一开始就开始学习软件开发,先后学习了winform学习c#基础、c#winform开发、C# I/O开发、c#多线程、c#数据库操作和SQLServer、xmlweb开发学习HTML、CSS、ASP.NET、Js、Jquery。到大二上学期学习结束。在中间做过的项目包括:一个公司OA管理系统:主要功能:仓库管理、人员管理;考试系统:
2013-02-04 09:25:04
2415
6
原创 zlib学习总结
zlib类库提供了很多种压缩和解压缩的方式,由于时间的关系我只学习一下内容,以下是我在实现web 服务器压缩数据网页中使用到一些函数和常用数据结构、常量等。zlib使用过程压缩过程:deflateInit() ->deflate() ->deflateEnd(); 对应的解压过程 inflateInit() -> inflate() -> inflateEnd();
2013-01-19 11:12:49
20814
原创 自己动手写web服务器四(web服务器是如何通过压缩数据,web服务器的gzip模块的实现)
web服务器为什么要压缩数据? web服务器如果将要发送的网页经过压缩后,待发送的数据将会减少一半左右,将会节省很大一部分的带宽,从而提高自己的并发量和减少网页传输时间。加快网页的浏览。 是不是web服务器开启压缩一定会提高性能? 不一定的,因为每次压缩,都需要对文件进行压缩算法。将会消耗一定cpu和I/O的。因此,当文件较小时没有必要开启压缩功能
2013-01-18 16:01:19
6157
原创 gzip头部格式
注意两个加好表示一个字节(8位)gzip头的格式:+---+---+---+---+---+---+---+---+---+---+|ID1|ID2|CM |FLG| MTIME |XFL|OS | (more-->)+---+---+---+---+---+---+---+---+---+---+(if FLG.FEXTRA set)+---+---+======
2013-01-16 15:48:42
15361
7
原创 linux c网络学习总结2(IP地址相关的操作)
AF_INET Stream Data Structuresstruct sockaddr_in { short int sin_family; //使用的协议簇; 值为AF_INET unsigned short int sin_port; //要使用的端口号,范围是从0 到65535,普通程序使用从1
2013-01-16 10:54:44
1931
原创 在 win7 中编译Apache2.0.64
一下仅是自己遇到的问题。 调试环境:编译器:vc++6.0, 操作系统:win7 32位 问题1: E:\sourcecode\apache\httpd-2.0.64\srclib\apr\misc\win32\rand.c(33) : error C2065: 'HCRYPTPROV' : undeclared identifierE:\sourcecode\
2012-12-14 17:11:14
3097
原创 自己动手写web服务器三(web服务器是如何处理浏览器取消的请求的)
对于web服务器,要尽量的减小服务器的负担。如果,浏览器已经取消请求连接,web服务器就不应该再向浏览器发送页面的数据了。我本次是测试web服务器是如何知道浏览器已经取消了请求哪? 如果浏览器取消请求,web服务器继续向浏览器发送请求,将会造成web服务器的崩溃。在高级语言中种称之为异常也叫做异常中断,但是在C语言中没有。可是,C语言中的信号量提供了类似异常的功能。但是很多书上对
2012-12-10 18:22:44
4976
1
原创 通过测试浏览器对网页中元素请求,提出减少浏览器请求的建议
最近一直在学习linux网络编程这一块的内容,自己做了一个简单web服务器,以前无法确切的了解web浏览器访问网页的的请求过程。现在有着样的条件了,所以就自己实现一下看看过程了。浏览器展示一个网页的过程:(不涉及本地缓存,假设本地没有缓存)浏览器向服务发送请求,请求一个页面。服务器响应请求,向浏览器发送页面。浏览器加载页面,如果有外部文件,转向4步,没有结束
2012-12-09 17:01:21
2459
原创 数据结构学习五(稀疏矩阵的实现,三元组)
使用三元组实现稀疏矩阵的建立、逆转、乘法。乘法没有使用附加向量,是自己想得。有错误请谅解。性能可能没有书上介绍的好。代码如下:(本代码只经过本人的简单测试,可能存在问题。请相信自己的能力,敢于质疑。欢迎提供更好的、更快、更简洁的代码或者方法和指出错误。在ubuntu12.04使用gcc4.6.3版本编译,在vc中如出现错误,请谅解。)/**created by Reage
2012-12-04 10:19:06
1910
原创 数据结构学习四(KMP算法实现)
算法思想描述:KMP算法是通过分析模式串,预先计算每个位置发生不匹配的时候,可以省去重新匹配的的字符个数。整理出来发到一个next数组, 然后进行比较,这样可以避免字串的回溯,模式串中部分结果还可以复用,减少了循环次数,提高匹配效率。通俗的说就是KMP算法主要利用模式串某些字符与模式串开头位置的字符一样避免这些位置的重复比较的。例如 主串: abcabcabcabed , 模式串:abca
2012-11-28 21:31:49
1466
2
原创 ACM题 蛇形矩阵
/*题目:在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:10 11 12 19 16 13 28 15 14 37 6 5 4整体思路:设函数为row;例如:row = 4;蛇形矩阵尾:10 11 12 19 16 13 28 15 14 37 6 5 4对应的坐标位置为:(0,0)(
2012-11-21 19:23:08
1814
reage热键工具2.0
2012-07-02
一些常用的c51单片常用类库(有1602,键盘,DA,AD,红外)
2011-10-27
任忌热键管理程序(自己使用c#写的快捷启动软件)源码
2011-10-23
c#多线程学习入门经典
2010-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人