自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

管子(zero)的杂乱空间

发的技术相关的内容基本都测试过的。

  • 博客(112)
  • 资源 (4)
  • 收藏
  • 关注

[软件工程]唯一不变的就是变化

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/&

2010-10-31 17:31:00 100

C# 中的委托和事件

http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx

2010-10-28 23:09:00 134

Linux系统的LOG日志文件及入侵后日志的清除

下面的文章是了解系统日志是看到别人写的,现在贴出来为了使自己记住没有掌握的Linux功能。-------------文档目录-------------1 什么是syslogd2 配置syslogd的说明3 syslogd和系统中服务配置中日志的关系4 什么是logrotate5 配置logrotate的说明-------------文档正文-------------1 什么是syslogd...

2010-10-25 23:32:00 134

C 消息连接的一种系统方法

 用过C 进行过面向对象程序设计的用户都知道,程序中的对象很少单独存在。不考虑对象间的相互作用几乎是不可能的。所以,标识对象间的关系或建立对象间的消息连接是面向对象程序设计的一项重要任务。本文着重从C 程序设计的角度,提出一种建立对象间消息连接的实用方法。如果你想详细了解面向对象程序设计技术,请参阅有关专著。大家都知道对象是数据和方法的封装体。在C 中,它们分别表现为数据成员和成员函数。程序设计者...

2010-10-25 23:24:00 84

Linux shell脚本全面学习

1. Linux 脚本编写基础1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh   符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。   当编辑好脚本时,如果要执行该脚本,还必须使其可执行。   要使脚本可执行:编译 chmod +x filename ...

2010-10-25 23:19:00 69

关于函数调用的总结

首先强调的是:C语言中所有函数调用都是传值调用(数组是例外情况。C里数组名就表示了数组的首地址当把数组名当参数传递时,其实也就是传了个地址而已)1、传值调用时是copy一份传给函数,在函数体内对传给函数的变量做修改不会影响原变量。这种方法如果传的对象比较大会增加很多的内存开销。#include <stdio.h>void *fun(char *a){ ...

2010-10-25 23:17:00 90

GDB使用手册

[code]START-INFO-DIR-ENTRY * Gdb: (gdb). The GNU debugger. END-INFO-DIR-ENTRY This file documents the GNU debugger GDB. This is Edition 4.12, January 1994, of `Debugging with GDB: the GNU Source-L...

2010-10-25 23:15:00 337

使用gdb调试程序

GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而Windows下的图形软...

2010-10-25 23:14:00 112

gdb使用精粹

一:列文件清单 1. List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和>)和外壳通配符(*、?、[、])在内。 如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。 利用set args 命令就可以修改发送给程序...

2010-10-25 23:12:00 126

GNU C 扩展之__attribute__ 机制简介

GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__att...

2010-10-25 23:10:00 71

内存调试技巧

C 和 C++ 程序中的内存错误非常有害:它们很常见,并且可能导致严重的后果。来自计算机应急响应小组(请参见参考资料)和供应商的许多最严重的安全公告都是由简单的内存错误造成的。自从 70 年代末期以来,C 程序员就一直讨论此类错误,但其影响在 2007 年仍然很大。更糟的是,如果按我的思路考虑,当今的许多 C 和 C++ 程序员可能都会认为内存错误是不可控制而又神秘的顽症,它们只能纠正,无法预防。...

2010-10-25 23:09:00 88

c的内存分配问题

(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任...

2010-10-25 23:08:00 53

常用时间函数说明

asctime(将时间和日期以字符串格式表示)相关函数 time,ctime,gmtime,localtime表头文件 #include<time.h>定义函数 char * asctime(const struct tm * timeptr);函数说明 asctime()将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结...

2010-10-25 23:07:00 163

字节对齐详解

一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定...

2010-10-25 23:05:00 83

linux多线程设计

#include <pthread.h>1、创建int pthread_create( pthread_t *tid, const pthread_attr_t *attr, void *(* func) (void *), void *arg );attr: 线程属性包括:优先级、初始栈大小,是否应该成为一个守护线程。缺省设置,NULL后面是线程要执行的函数和参数...

2010-10-25 23:04:00 74

Linux下syslog日志函数使用

许多应用程序需要记录它们的活动。系统程序经常需要向控制台或日志文件写消息。这些消息可能指示错误、警告或是与系统状态有关的一般信息。例如,su程序会把某个用户尝试得到超级用户权限但失败的事实记录下来。通常这些日志信息被记录在系统文件中,而这些系统文件又被保存在专用于此目的的目录中。它可能是/usr/adm或/var/log目录。对一个典型的Linux安装来说,文件 /var/log/messag...

2010-10-25 23:02:00 142

EPOLL及消息队列实现

#include "smtpd_mock.h"char* strsub (char *instr, unsigned start, unsigned end){unsigned n = end - start;char * outstr = (char *)malloc(n+1);//bzero(outstr,n+1);strncpy (outstr, instr + start, n);ou...

2010-10-24 00:18:00 119

超轻量 pthread 集结点实现

我需要的 pthread 线程集结点功能,使用同一集结点的线程将通过 rend_wait 函数等待,当集结点到达指定数量的线程后同时激发继续执行。使用 pthread 的 mutex 和 cond 超轻量实现。下面 rend.h 是集结点实现,rendezvous.c 是测试应用。C代码 /* *rend.h * *Createdon:2009-11-14 ...

2010-10-24 00:16:00 86

epoll

了解之后才发现epoll服务器的主线程其实最好和处理业务的代码分开, 也就是说: epoll响应外界的io请求,当epoll得到一个请求的时候,扔到一个消息队列中,然后epoll直接返回,再去等待io请求.而消息队列会通知多个线程去处理这些业务逻辑. epoll第一次用,消息队列更是第一次用,开始一直在想,怎么写个阻塞的队列,而且要有主动通知的功能,想了一会儿发现pthread_cond_wa...

2010-10-24 00:09:00 71

epoll

/*几个用到的类型定义以及全局变量bq*/char smtp_cmd_format;struct epoll_event ev, events[MAX_EPOLL_SIZE];int kdpfd,nfds;struct block_queue{int queue[THREADS_COUNT];long size;pthread_cond_t cond;pthread_mutex_t mutex;}...

2010-10-24 00:09:00 59

epoll

#include <iostream>#include <sys/socket.h>#include <sys/epoll.h>#include <netinet/in.h>#include <arpa/inet.h>#include <fcntl.h>#include <unistd.h>

2010-10-23 23:57:00 74

一个基于Event Poll(epoll)的TCP Server Framework,浅析epoll

LT/ET:ET也会多次发送event,当然频率远低于LT,但是epoll one shot才是真正的对"one connection VS one thread in worker thread pool,不依赖于任何connection-data-queue"的基础支持 .我看到大部分对epoll_wait的处理模式如下,很教科化,因为man-pages就是这样举例子的。man-pa...

2010-10-23 23:52:00 92

封装的EPOLL 模型

#pragmaonce #include<errno.h> #include<sys/epoll.h> #include<sys/types.h> #include<sys/socket.h> #include<fcntl.h> #include<unistd.h> #i...

2010-10-23 23:45:00 78

Asynchronous HTTP and Comet architectures

An introduction to asynchronous, non-blocking HTTP programminghttp://www.javaworld.com/javaworld/jw-03-2008/jw-03-asynchhttp.html?page=1

2010-10-23 14:18:00 72

comet 资料链接

http://en.wikipedia.org/wiki/Reverse_Ajaxhttp://en.wikipedia.org/wiki/Push_technology#HTTP_server_pushhttp://en.wikipedia.org/wiki/Comet_(programming)http://jetty.codehaus.org/jetty/ht...

2010-10-23 11:07:00 66

PROC系列

该文件中的所有值都是从系统启动开始累计到当前时刻。该文件只给出了所有CPU的集合信息,不能该出每个CPU的信息。[root@localhost ~]# cat /proc/loadavg 4.61 4.36 4.15 9/84 5662每个值的含义为:参数 解释lavg_1 (4.61) 1-分钟平均负载lavg_5 (4.36) 5-分钟平均负载lavg_15(4.15) 15-分钟平均负载nr...

2010-10-22 14:57:00 68

Gwt Json

创建对象private final RequestBuilder requestBuilder = new RequestBuilder( RequestBuilder.GET, "search-results.js" );请求requestBuilder.sendRequest(null, new RequestCallback(){ public void onE...

2010-10-21 22:56:00 69

掌握Ajax系列 第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求

本系列的上一期文章(请参阅 参考资料 中的链接),我们介绍了 Ajax 应用程序,考察了推动 Ajax 应用程序的基本概念。其中的核心是很多您可能已经了解的技术:JavaScript、HTML 和 XHTML、一点动态 HTML 以及 DOM(文档对象模型)。本文将放大其中的一点,把目光放到具体的 Ajax 细节上。本文中,您将开始接触最基本和基础性的有关 Ajax 的全部对象和编程方法:XM...

2010-10-21 13:15:00 95

Asterisk-IM - Jive Software Integration

Asterisk-IM Integration component to Asterisk for Jive's Jabber/XMPP server The homepage for the plug-in component Plug-in Readme Asterisk-IM compatible clients Asterisk-IM is a ser...

2010-10-20 16:48:00 73

jabber

Jabber is a standard for Instant messaging. The Jabber protocol is being standardized in the IETF. Jabber is an open XML protocol for the real-time exchange of messages and presence between any two...

2010-10-20 16:41:00 97

Making Google Talk Work With Asterisk

Products based on proprietary technologies sometimes suck! That’s because you don’t have any choice but to subscribe to the service as the provider defines it. Most of the time, you cannot interface t...

2010-10-20 16:39:00 81

Asterisk Jabber

Jabber is a common name for XMPP-based instant-messaged and communication. Native jabber support in Asterisk The Jabber module in Asterisk (res_jabber) is available starting from the 1.4 series. T...

2010-10-20 16:38:00 131

Asterisk Google Talk

Asterisk Google TalkPage ContentsIksemel installation Installation from source Debian Debian 3.1 Sarge Debian 4.0 Etch Troubleshooting Example setup jabber.conf...

2010-10-20 16:25:00 164

GDB Command Line Arguments

Starting GDB: gdb name-of-executable gdb -e name-of-executable -c name-of-core-file gdb name-of-executable -pid process-id (Use ps -auxw to list process id's.) Command line options: (vers...

2010-10-20 09:43:00 148

Ajax 服务器推送

1.HTTP拉取方式:在这种传统的方法中,客户端以用户可定义的时间间隔去检查服务器上的最新数据。这种拉取方式的频率要足够高才能保证很高的数据精确度,但高频率可能会导致多余的检查,从而导致较高的网络流量。而另一方面,低频率则会导致错过更新的数据。理想地,拉取的时间间隔应该等于服务器状态改变的速度。  2.HTTP流:这种方法由存在于不间断的HTTP连接响应中或某个XMLHttpRequest...

2010-10-19 18:03:00 61

linux shell

Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对...

2010-10-19 14:06:00 56

linux 信号

linux信号机制远远比想象的复杂,本文力争用最短的篇幅,对该机制做了深入细致的分析。信号应用实例将在信号(下)中给出。 一、信号及信号来源 信号本质 信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。 信号是进程间通信机制中唯一的异步通信机...

2010-10-19 13:59:00 60

C语言中产生随机数

问: C语言中产生随机数的函数是什么?C语言中产生随机数的函数是什么?(好象有两个)以及这两个函数的头文件是什么?问题补充:rand和srand有什么区别没? 答:#include <stdio.h> #include <stdlib.h> #include <time.h> void main() { int i; sr...

2010-10-19 13:47:00 88

C++知识点辨析

1, c语言中,结构体struct中不能包括函数的,而在C++中struct中可以包括函数。 2,C++中结构体和类可以通用,区别主要表现在访问控制方面:struct中默认是public,而 class中默认的是private。 3,构造函数最重要的作用是创建对象的本身,C++中每个类可以拥有多个构造函数,但必须至少有一个构造函数,当一个类中没有显式提供任何构造函数,C++编辑器自动提...

2010-10-19 13:45:00 60

Linux C函数之时间函数

函数分类:1. 设置时间: settimeofday, tzset2. 获取时间: time, ftime, gettimeofday3. 时间格式转换: mktime, strftime; gmtime, localtime; asctime, ctime4. 其他: clock, difftimeasctime: 将时间和日期以字符串格式表示头文件: time.h函数定义: char *a...

2010-10-19 12:20:00 98

moo.fx.pack.js

moo.fx.pack.js

2007-07-22

pic.js

pic.js

2007-06-02

css_573590.cache.css

css_573590.cache.css

2007-06-02

AJAX.JS

JS文件

2007-06-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除