首页 › 月度存档 › 九月 2014

使用libevent编写linux服务

 libevent简介

libevent是一个支持Windowslinuxbsd等平台的网络事件驱动程序库。它支持多种I/O服用机制,按照优先级从高到低依次为:evportkqueueepolldevpollrtsigpollselect。它可根据操作系统,按照优先级从高到底自主选择驱动。

     用户可以通过http://www.monkey.org/~provos/libevent/来获取libevent的源码、libevent出现的背景、以及其他一些详细资料。
继续阅读 »

gcc的ar,nm,objdump,objcopy

OBJ文件格式分析工具: objdump, nm,ar

 

首先简要阐述关于gcc、glibc和 binutils模块之间的关系

一、关于gcc、glibc和binutils模块之间的关系
继续阅读 »

Linux下查看.so和可执行文件是否debug编译

今天同事问我, 如何判断一个.so是否是debug编译的.

我记得以前自己是用file来查看一个.so, 根据是否包含”not stripped”来判断该.so是否是debug编译的, 于是就没做实验就回答.

然而, stripped/not stripped并不是debug/release编译的判断标准. 我对debug和release的.so运行file后, 得出几乎相同的输出, 都是not stripped. 所以我算是误导同事了.
继续阅读 »

关于SVN 目录结构

   Subversion有一个很标准的目录结构,是这样的。比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是

   svn://proj/
   |
   +-trunk
   +-branches
   +-tags 
   这 是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使 用,svn并没有明确的规范,更多的还是用户自己的习惯。
    对于这几个开发目录,一般的使用方法有两种。我更多的是从软件产品的角度出发 (比如freebsd),因为互联网的开发模式是完全不一样的。
继续阅读 »

Linux下libevent安装与示例

用wget指令直接下载libevent:# wget http://www.monkey.org/~provos/libevent-1.2.tar.gz

然后,在配置时需要指定一个安装路径,即./configure –prefix=/usr;然后make;然后make install;

详细的方法如下:

继续阅读 »

Linux下socket异步通讯聊天程序

网络课的project 1能用到的资料,程序结构比较清晰,转来学习一下

什么是异步通讯?
就是通讯任意一方可以任意发送消息,有消息来到时会收到系统提示去接收消息。
继续阅读 »

socket异步编程–libevent的使用

这篇文章介绍下libevent在socket异步编程中的应用。在一些对性能要求较高的网络应用程序中,为了防止程序阻塞在socket I/O操作上造成程序性能的下降,需要使用异步编程,即程序准备好读写的函数(或接口)并向系统注册,然后在需要的时候只向系统提交读写的请求之后就继续做自己的事情,实际的读写操作由系统在合适的时候调用我们程序注册的接口进行。异步编程会给一些程序猿带来一些理解和编写上的困难,因为我们通常写的一些简单的程序都是顺序执行的,而异步编程将程序的执行顺序打乱了,有些代码什么情况下执行往往不是太清晰,因此也使得编程的复杂度大大增加。
继续阅读 »

后台开发常用工具 开发工具

后台开发常用工具 开发工具
继续阅读 »

SVN authz 配置详解

我们对项目根目录做了限制,该目录只允许arm事业部的经理才能修改,其他人都只能眼巴巴的看着:

[arm:/]
@g_manager = rw
* = r

[arm:/] 表示这个目录结构的相对根节点,或者说是 arm 项目的根目录
继续阅读 »

centos下svn配置

本文介绍centos下svn配置
继续阅读 »