自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aobai219的专栏

软件工程师

  • 博客(77)
  • 资源 (1)
  • 收藏
  • 关注

原创 资源收集

ACM网络图书库http://portal.acm.org/portal.cfm一个收集了很多P2P资料的blog, 特别是关于kad方面http://blog.csdn.net/legulas66 一个非常出色的英文网站(unix.com):http://www.developerweb.net/forum/index.php

2009-07-15 21:14:00 489

原创 经验总结:【不断更新】

http://dhcp.tcgs.tc.edu.tw/c/p018.htm   大数问题2011-06-24     smb  环境设置    一直以来smb 都有问题 ,其实很简单的, 不知道为什么老是出问题。  记录过程http://wiki.ubuntu.org.cn/Samba       username : new      

2009-02-27 16:58:00 592

转载 #---改变目录色彩---#

Linux在命令行方式中,默认的目录显示颜色为蓝色,在黑色背景下难以看清。现介绍一种修改显示颜色的方法: 1、将/etc/DIR_COLORS文件cp到~/下,并改名为.dir_colors。 cp -af   /etc/DIR_COLORS  ~/. dir_colors2、编辑.dir_colors文件,找到“DIR 01;34   # directory”,将34改为36

2011-12-05 10:46:44 640

原创 printf 实现原理

一: 实例源码printf 实现原理:printf 函数肯定有一个格式串,例子中为"string = %s xx = %s , hex = %d \n",printf的实现是依据该格式串,智能的解析% 后面的字符,假如第一个% 后面是s 代表格式串后面的第一个参数代表一个地址,如果是d则代表是一个十进制。 以此类推。所以要特别注意格式串的编写,如果多写了(printf("%

2011-12-03 00:43:18 3337

转载 淘宝面试题:如何充分利用多核CPU,计算很大的List中所有整数的和

http://flysnow.iteye.com/blog/711162

2011-10-29 15:32:29 712

原创 udp 丢包问题以及解决方案

1:场景服务器: 4  CPU   300w/min  upd  包接收量 ,丢包为 2k /min     以上都是峰值。  只有一个CPU 负荷高,其他CPU 负荷都很低解决办法包括:1) 增大udp 接收缓存2) 寻找一种方法, 让4个CPU都能够利用起来。 3)   udp丢包有很多种可能, 可能在网卡那一层就丢了,怎么检测? 关键是要弄清楚整个的一

2011-10-29 15:14:11 2555 1

原创 将一个char 类型的数值转换为unsigned short类型

场景:将一个char 类型的数值转换为unsigned short类型char  一个字节unsigned short  二个字节对于无符号数,我们直接在高位加零就可以了,也叫零扩展对于有符号数, 执行符号扩展 。 举例: 注: char

2011-10-14 17:13:34 6092

原创 apue 第五章 stand I/O

Apue  stand io  读书笔记缓冲1:fully buffer2:line  buffer 3:unbufferedReading and writing  a stream1: charactor-at-a-time IOGetc:

2011-10-05 19:59:28 659

转载 gethostbyname timeout

下面是网上摘录的解决该问题的方法, 对怎么绕过其他系统函数(无论是线程安全还是非安全的)也有很好的借鉴意义Hello,I need to add timeout to gethostbyname function in my program. Igoogled and searc

2011-07-26 17:34:27 1947

原创 函数调用跟踪

为了很好的理解nginx ,看了-finstrument-function的使用,主要参考了资料file:///C:/Users/hp/AppData/Roaming/Mozilla/Firefox/Profiles/hidslbey.default/ScrapBook/data

2011-07-21 17:29:31 750

原创 nginx 源码 笔记

记录阅读nginx 源码过程中一些我认为有价值的资料(参考资料,收获等)   这是一个系列  会不断更新1 )epoll  相关 http://blog.csdn.net/force_eagle/article/details/4348017

2011-07-11 23:08:38 525

原创 动态库使用方法

动态库使用方法 工作笔记 1: 怎么编译动态库 详细解释下各个参数的意义 动态库和静态库区别 生成共享库: gcc -share -fPIC -o xx.so ff.c -share : 创建一个共享的目标文件 -fPIC : 指

2011-07-05 17:51:13 3049

原创 【读书笔记】 memcached

2011-06-21  memcached  已经大概看完几天了   记录下所做的笔记 1: 明白了memcached 的线程模型2: 看了源码里面set 命令执行的流程,基本了解了它的存储机制 (slabs , hash ) ,存储这一块没有太详细的看, 如果以后项目中用到, 在仔细看也不错。 3: 分布式 , 这个应该是在客户端做的。  这里面基本没有涉及。

2011-06-21 20:56:00 538

原创 读书笔记: SO_LINGER 选项

SO_LINGER  选项关键字:TCP UDP 发送接收缓冲区  CLOSE, SHUTDOWN 函数close 函数默认处理: FIN 放到发送缓冲区的最后面,立即返回,并且发送完发送缓冲区中的所有数据。如果想改变close的操作,可以设置SO_LINGER选项  具体参考《UNP》 7.4 总结: 设置SO_LINGER 套接口选项后,close的成功返回只是

2011-06-19 11:23:00 740

转载 libevent 学习比较

注意  event_base_dispatch  和event_dispatch  的区别。 个人理解event_base_dispatch 是针对某类base 的。 http://hi.baidu.com/%D0%A1%C6%BD339/blog/item/e913fd8160b006ddbd3e1e08.htmllibevent 学习

2011-06-16 14:07:00 1845

原创 《计算机网络 自顶向下方法》 传输层

《计算机网络自顶向下方法》第三章笔记 这是一本好书,这个文档只是对其中的概念总结下。 UDP  UDP 是无链接的,它得到数据,加上8字节UDP头,转发。为什么还有那么多应用(DNS, SNMP)选择UDP而不是TCP? 答案是协议没有好坏,选择一个最适合的最重要,对于DNS, SNMP,可靠性不是最重要的。许多应用选择UDP的原因有以下几点:一:应

2011-06-10 00:14:00 1486

原创 builder 模式 实例分析

<br /><br />Builder 模式 实例分析<br /><br /><br />1:简介<br />       Bulder模式的意图:将一个复杂格式的构建和它的表示分离<br />2:实践中使用<br />       在实践中最重要的是要彻底明白需求,能够脱离业务,抽象出整个结构的模式,对应该模式的各个部分,做到接口的抽象。<br />3: c 语言实现<br />参考《系统程序员 : 成长计划》第10章。<br />书上面已经很清楚了,这些记录下,加深理解<br />Part1 :

2011-06-01 15:18:00 774

转载 格式化输出

http://www.neu.edu.cn/cxsj/pointchart/c4/Page5.html<br /><br /><br />printf函数称为格式化输出函数,其功能是按用户指定的格式(控制字符串规定的格式),将指定的数据项输出到标准的输出设备(一般为显示器)上。<br />REF:.TXTprintf函数 TAG: printf函数,标准输入输出TEXT:printf函数是一个标准库函数,能够以精确的格式输出程序运算的结果。printf函数的调用格式为: printf(“格式控制字符串”,输

2011-05-31 14:38:00 1624

原创 信号: SIGCHILD

信号: SIGCHILDQ: 1 : 该信号默认处理是忽略? 为什么需要显式的忽略?2: 可移植的信号处理? 3: signal  函数和sigaction 函数的区别4:可再入5:A:1:  对于信号SIGCHILD 处理, 是在应用中处理的比较多的两个应用(SIGCHILD, SIGPIPE)   系统默认是忽略该信号的,如果要再捕捉该信号,参考《CSAPP》第八章。总结: SIGCHLD信号是一个很特殊的信号, 在不同的系统中可能有不同的语意SIG_DEF (忽略) 和SIG_IGN 在早期的系统中还

2011-05-14 06:41:00 2228

原创 http 资料

http://blog.sina.com.cn/s/articlelist_1736173915_0_1.html<br />http://hi.baidu.com/langwan/blog<br />http://code.google.com/p/nginxsrp/wiki/NginxCodeReview<br />apache模块开发指南 还有就是网上的那个lighttpd 这个源码了。

2011-05-04 22:57:00 593

原创 学习心得:在c 中用面向对象的思想编程

<br />       学习了《系统程序员:成长计划》<br /> <br />      对里面用c语言实现面向对象的思想印象比较深刻,刚好前段时间有时间看了《敏捷软件设计》 里面几乎都是用的面向对象的思想。 <br />用什么语言不重要, 重要的是思想。 <br /> <br />      平时用c比较多。 这里就回忆下它实现的方法:<br /> 步骤一:<br />      为什么要用面向对象的思想呢? 引用原书的话,接口隔离变化 <br /> <br />  一般设计为对对象的create ,

2011-05-04 22:56:00 865

原创 虚拟机 硬盘 扩充方法

前言:搭建开发环境, 以前安装的虚拟机硬盘太小,需要扩充  步骤如下, 记录之1: 在vmware 上面扩充好硬盘大小 。具体步骤 选中hard disk , 然后选择utilities , 选中扩充2:  用fdisk  /dev/sda  查看整个硬盘的分区,情况, 并且创建一个新的分区。 3:  假如创建了一个新的分区, 用mount 命令挂载上就可以用了。

2011-04-30 17:38:00 811 1

原创 信息位的表示

信息位的表示字节:  8位的块  最小的可寻址的存储器单位. 对于在机器上面的位,  对于相同的二进制序列,用不同的方式去看表现出来的值就不一样,  比如unsigned ,  二进制补码等。  比如  Printf(“0x%x   =   %d /n”,val,val); 相同的东东,但是不用的表现形式。浮点数分为单精度,双精度(待补充)对象的地址和我们在存储器中如果对这些字节排序。对象地址肯定是所使用字节序列中最小的,排序的方法有两种,大端,小端,一般的机器都是小端,这个可以在编译内涵的.config

2011-04-28 23:04:00 1693

原创 函数参数为指针

<br /> 在<c/c++高质量编程 》 中典型的<br /> <br />7.4 指针参数是如何传递内存的?<br />如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例 7-4-1 中,<br />Test 函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL,<br />为什么?<br />void GetMemory(char *p, int num)<br />{<br />p = (char *)malloc(sizeof(char

2011-03-11 11:22:00 722

原创 ntfs-3g 移植 记录

<br />       今天1.30, 公司已经放假了,  最近项目紧张, 买好的机票又退了,年假也没有请到。 悲剧!!<br /><br />步骤一 : 内核增加fuse 模块, 参考上面一篇 blog <br />步骤二: <br /><br />1.  到http://www.tuxera.com/下载最新的ntfs-3g源码,可先参考其文档<br />2.  configure配置参考如下: ./configure CC=sh4-linux-gcc --host=sh4-linux --p

2011-01-29 18:26:00 2938 1

原创 fuse 移植

<br /><br /> <br /> <br />移植经验<br />参考:http://linux.chinaunix.net/bbs/viewthread.php?tid=1042164&extra=page%3D4%26amp%3Bfilter%3Ddigest<br /><br />具体就是参考上面得到depmod 这个命令 <br />然后呢按照下面方法得到fuse.ko 这个模块<br /><br />定位fuse模块内核代码:/root/linux-2.6.23/fs/fus

2011-01-29 17:10:00 1322

原创 Conncet 问题

<br />Conncet 问题 环境 : linux 客户端 ,服务器端 。 非阻塞 ,客户端和服务器端部在同一机器上 服务器等待连接情况,有连接时,处理连接服务器端结构如下: 每一次只是处理一个连接 <br />While(1){ Ret =Select(listenf+1,&rd,NULL,NULL,tv) //等待连接请求 { Client = accept(listen,) If(client > 0) { While(1) //死循

2011-01-06 20:22:00 1249 2

转载 怎样写参数个数可变的宏

#if  #ifdef#if defined

2010-12-22 17:32:00 27810 6

原创 实践中发现的问题

<br /> <br />                                  SOCKET  缓冲区问题<br /> <br />环境:  <br />server  , 非阻塞      一直循环发送数据(send , 并且数据是以'/n' , '/0' 结尾的)<br /> <br />client    , 阻塞         循环接收数据 <br /> <br /> <br />现象:<br /> <br />如果在server中不usleep(1000) ,也就是发的速度非常快,

2010-12-20 15:10:00 828

原创 Connect : Connection refused

linux服务器端一直检查是否有数据发送给客户端。 如果有一直发(send)  , 非阻塞的linux 客户端 connect 服务器端成功后  做如下循环接收  ,阻塞的int rlen  = -1;while(1){   rlen = recv();  //阻塞   if(rlen    {       perror("recv");       break;   }}close(socket);return;运行一段时间后发现 客

2010-12-17 12:19:00 1946

转载 c++ primer 记录

数据抽象和封装 数据抽象:数据抽象是一种依赖于接口和实现分离的编程和设计技术。类设计者必须关心类是如何实现的,而使用该类的程序员则不必了解这些细节,他们只需要了解类的接口就可以使用该类。 封装:封装是一种将低层次的元素组合起来形成新的、高层次实体的技术。函数是封装的一种形式:函数所执行的细节行为被封装在函数体内。被封装的元素隐藏了它们的实现细节——可以调用一个函数但不能访问它所执行的语句。当引入类的概念后,封装被更好的理解,很多类内部的细节被隐藏,从外面所能看到的只是一些类提供的接口。

2010-12-14 15:23:00 508

原创 日志 与或

<br />inline void<br />CPLogger::_log_on(const int type, const int levels)<br />{<br />    assert(type >= 0 && type <= LOG_TYPE_MAX);<br />    assert(levels >= 0 && levels < LOG_LEVEL_MAX);<br />    if (T_ALL == type)<br />    {<br />       

2010-12-14 14:27:00 508

原创 链接 总结

  汗,本章已经是我第几次详细看了, 我居然看了一下午  不的不佩服写的好呀                     链接 总结7.1:编译过程.c  .i(中间文件)   .s(汇编)  .o(可重定位目标文件)     Cpp(预处理器)  ccl(编译器)  as(汇编器)最后用ld(链接器)生成可执行文件操作系统调用loader(加载器)运行该文件,7.2:链接器完成任务1) 符号解析:引用到定义的一一对应2) 重定  位:定义与实际存储器位置连续起来引用==

2010-11-22 17:28:00 594 3

原创 libevent 移植到 ARM 步骤

一.libevent的交叉编译1.配置<br />./configure --prefix=/opt/crossinstall/libevent --host=arm-uclibc-linux CC=arm-uclibc-linux-gcc CXX=arm-uclibc-linux-g++<br />2.编译<br />make<br />3.安装<br />make install<br />二,tmux的交叉编译1.配置./configure<br />2.然后修改config.

2010-10-21 19:41:00 7746 1

原创 ulimit -a /proc/sys/fs/file-nr 数字解析

<br /> <br /> <br />file-nr:<br /> <br />Historically, the three values in file-nr denoted the number of<br />allocated file handles, the number of allocated but unused file<br />handles, and the maximum number of file handles. Linux 2.6 always<br />

2010-09-07 15:20:00 8697

转载 非阻塞socket 的连接

非阻塞socket 的连接2010-02-21 14:17方案1:使用while和usleep的timeout<br />int connect_socket_timeout(int sockfd,char *dest_host, int port, int timeout)<br />{<br />struct sockaddr_in address;<br />struct in_addr inaddr;<br />struct hostent *host;<br />in

2010-09-02 11:34:00 1221

原创 select 模式 非阻塞

<br />    在windows 下设置select 模式的非阻塞。 <br />    具体实现如下<br /> <br />    客户端:(window)  创建一个socket ,非阻塞, 调用connect , connect 立即返回。 然后用select 检查,如果可写, 就认为该  connect  连接成功, 在具体实现的时候发现如果不清空可写集, 发现select 一直返回该描述字可写。 认真看了下unp ,发现确实一值为可写, 第一次可写表示连接成功, 对于一个已经连接成功的tcp

2010-09-01 21:25:00 1360

转载 常见音视频格式

MPEG 系列<br />MPEG即(Moving Pictures Experts Group)运动图象专家组,属于ISO(InternationalOrganization for Standardization)国际标准组织,他们开发了一系列视频音频编码,最为大家熟悉的就是MP3,MPEG-1/2/4。<br />MPEG-1<br />较早的视频编码,质量比较差,主要用于 CD-ROM 存储视频,国内最为大家熟悉的就是 VCD(Video CD),他的视频编码就是采用 MPEG-1。

2010-08-27 10:59:00 1589

转载 live555 linux 编译

<br />live555 支持 h.264 初步告捷,可以播放,尽管不是很稳定,或者说暂时只能播放 1 帧(主要是我现在还不了解 帧的概念),同时还有 Mal SDP 的传输问题,但还是总结一下,作为参考。<br />liveMedia项目(http://www.live555.com/)<br />1、编译安装<br />下载 source code 到 ubuntu 下<br />解压<br />./genMakefile linux<br />make<br />2、运行

2010-08-26 21:55:00 20865 5

转载 live555 流程重要函数整理

服务器启动DynamicRTSPServer::createNew(*env, rtspServerPortNum, authDB);env->taskScheduler().doEventLoop()有链接了!select(fMaxNumSockets, &readSet, NULL, NULL,&tv_timeToDelay)创建好了RTSPClientSessionvoid RTSPServer::RTSPClientSession::incomingRequestHa

2010-08-25 21:36:00 2857

QNX_reference

c 语言中库函数的实现等,关键是还有举例,这个是我在平时的编程, 工作中用的最多的一个文档。 比man好用很多

2009-06-26

空空如也

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

TA关注的人

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