自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(171)
  • 资源 (7)
  • 收藏
  • 关注

原创 dig详解

dig是一个linux/unix下用于查看域名详情的小工具,类似于 nslookup ,但比 nslookup 的功能更强大,显示的信息更全面。而 windows 系统下只带有 nslookup 这个命令,下面是在 windows 系统下安装 dig 命令的方法。首先下载 dig 包,下载地址是:http://members.shaw.ca/nicholas.fong/dig/dig-fi...

2011-04-07 18:00:35 559

原创 OLAP与OLTP

当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 O...

2011-02-10 13:51:13 193

原创 Squid是什么

1.Squid是什么?   Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据...

2011-02-10 10:06:20 555

原创 学习STL map, STL set之数据结构基础

学习STL map, STL set之数据结构基础摘要:本文列出几个基本的STL map和STLset的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map,set选择问题,并分析了map, set的优势之处。对于希望深入学习STL和希望了解STLmap等关联容器底层数据结构的朋友来说,有一定的参考价值...

2010-12-23 09:45:57 158

原创 htonl(),htons(),ntohl(),ntons()--大小端模式转换函数

不同机器内部对变量的字节存储顺序不同,有的采用大端模式(big-endian),有的采用小端模式(little-endian)。大端模式是指高字节数据存放在低地址处,低字节数据放在高地址处。小端模式是指低字节数据存放在低地址处,高字节数据放在高地址处。在网络上传输数据时,由于数据传输的两端可能对应不同的硬件平台,采用的存储字节顺序也可能不一致,因此 TCP/IP 协议规定了在网络上必须...

2010-12-16 16:51:22 527

原创 经典的排错过程 expected unqualified-id before string constant

答案是:我的代码少了一个 “;”=====================================现场:回到 报错的那一行,发现没有问题。 报错的文件:ptlogin2_api.h(22行):expected unqualified-id before string constant 在我的一个cpp的 代码中间(绝对不是在头文件),使用了这个文件 ptlogin2_a...

2010-10-20 18:52:19 1029

原创 命令行输出彩色字符串

#include int main (int argc, char **argv){    printf ("\033[31mThe color of this line is red, %s!\033[0m", "ha ha");    printf("\033[46;32m 北京颜色不同 \033[0m");    printf("\033[4;41;32m test ...

2010-09-30 14:13:25 632

原创 关于Linux静态库和动态库的分析

1.什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。2.库的种类linux下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库的代码在编译过程中已经被载入可执行程序,因此体...

2010-09-28 10:29:17 104

原创 Heartbeat

Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。下面描述了 heartbeat 模块的可靠消息通信机制,并对其实现原理做了一些介绍。   高可用集群是指一组通过硬件和软件连接起来的独立计算机,它们在用户面前表现为一个单一系...

2010-09-01 19:31:47 150

原创 source Insight常用自定义命令和一些小技巧

在Source Insight中添加自定义功能的步骤如下:1.Source Insight中,Options->Custom Commands...->Add...,New Command name 随便写,我的是"Edit with Vim" 2.Run中写入: "C:\Program Files\Vim\vim63\gvim.exe" --remote-silent +%l...

2010-08-13 14:34:44 289

原创 WEB服务器性能瓶颈分析

本文先介绍一下各种WEB服务器平台,然后对影响WEB服务器性能的各方面做了分析,最后解析了目前使用最普遍的Apache服务器在服务请求高峰时的响应延迟现象   在上周的一篇文章里,我们介绍了搭建WEB服务器的方法,但这只是建立WEB服务器的第一步,在实际的站点运行中,也许服务器的性能表现会不尽如人意,这就需要分析具体的服务器性能瓶颈并找到解决办法。本文先介绍一下各种WEB服务器平台,然...

2010-07-29 15:15:52 824

原创 linux下更改共享内存的最大值

System V IPC参数名字 描述 合理取值 SHMMAX最大共享内存段尺寸(字节)最少若干兆(见文本)SHMMIN最小共享内存段尺寸(字节)1SHMALL可用共享内存的总数量(字节或者页面)如果是字节,就和 SHMMAX 一样...

2010-07-26 13:22:49 316

原创 宏和内联函数的区别

先说宏和函数的区别:1. 宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型.2. 宏的参数替换是不经计算而直接处理的,而函数调用是将实参的值传递给形参,既然说是值,自然是计算得来的.3. 宏在编译之前进行,即先用宏体替换宏名,然后再编译的,而函数显然是编译之后,在执行时,才调用的.因此,宏占用的是编译的时间,而函数...

2010-07-07 15:55:20 103

原创 C中存储类,链接,作用域

C中存储类,链接,作用域C中变量按照不同的标准有不同的分类方式,总的来说主要有三大类:存储周期,作用域,链接。 作用域:作用域描述了程序中可以访问一个标志符的一个或多个区域。目前主要包括以下:文件作用域:在所有函数之外定义的变量具有文件作用域。函数原型作用域:从变量定义到原型声明的末尾。注意此时可以不写变量具体名称,编译器只关注变量的类型,如下(两者等价):  ...

2010-07-06 17:47:22 135

原创 10个强大的开源Web流量分析工具

锐商企业CMS 写道 "Web 流量分析工具多不胜数,从 WebTrends 这样专业而昂贵的,到 Google Analytics 这样强大而免费的,从需要在服务器端单独部署的,到可以从前端集成的,不一而足。本文收集并介绍了10个功能强大的开源 Web 流量分析工具,因为是开源的,因此可以免费部署到你的网站(完整图文版)。------------------...

2010-06-18 20:18:52 1075

原创 URL Encoding

URL:http://localhost:8080/example/中国?name=中国汉字   编码      二进制表示中国   UTF-8     0xe4 0xb8 0xad 0xe5 0x9b 0xbd[-28, -72, -83, -27, -101, -67]中国   GBK       0xd6 0xd0 0xb9 0xfa[-42, -48, -71,...

2010-06-10 20:45:20 163

原创 环境变量相关

 系统环境变量:/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.当前用户变量:~/.bash_profile:每个用户都可使用...

2010-06-10 15:03:45 110

原创 linux中的信号处理(signal与alarm)

简单处理程序: #include<stdlib.h> #include<stdio.h> #include<unistd.h> #include<signal.h>void handle() { printf("I am steven\n"); alarm(1); } ...

2010-05-12 15:25:52 407

原创 Trie- 字典树(单词树)的基本应用

#include <stdio.h> #include <stdlib.h> #include <string.h> int const N= 1000000; struct Trie{ int id; // 标记每一个单词 int cnt; // 标记单词前缀的数量 int next[26]; //...

2010-05-12 14:47:29 170

原创 Http 协议学习笔记

HTTP(Hypertext Transfer Protocol, 超文本传输协议),用于从WWW服务器传输超文本到本地浏览器的传输协议。你可以通过协议定制传送的内容,从而减少网络传输。由于HTTP协议支持的服务不限于WWW,还可以是其它服务,因而HTTP协议允许用户在统一的界面下,采用不同的协议访问不同的服务,如FTP、Archie、SMTP、NNTP等。另外,HTTP协议还可用...

2010-05-09 15:23:12 155

原创 HTTP 1.1的一些细节:Cache机制

HTTP 1.1的一些细节:Cache机制Du XiaoGang <dugang@188.com>     Cache机制可能是HTTP 1.1协议中最复杂的一个组成部分,它的目的有两个:        1, 降低网络上发送HTTP请求的次数,这采用"过期"机制(Expiration M...

2010-05-08 13:38:26 161

原创 Web缓存加速指南

原文(英文)地址: http://www.mnot.net/cache_docs/   这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文,后面参考文档和更多深入阅读部分可能是你更需要的内容。什么是Web缓存,为什么要使用它?...

2010-05-08 12:15:13 82

Cache 的write back和write through

Cache 的write back和write through 收藏 为了保证cache和memory的数据一致性,通常有三种方法:1〉write through:CPU向cache写入数据时,同时向memory也写一份,使cache和memory的数据保持一致。优点是简单,缺点是每次都要访问memory,速度比较慢。2〉post write:CPU更新cache数据时,把更新的数据写入到...

2010-04-22 15:47:02 84

选择 ARM处理器,ARM7还是Cortex-M3?

要使用低成本的 32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。1.ARM实现方法ARMCortex-M3是一种基于ARM7v架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线(冯诺伊曼结...

2010-04-08 00:52:25 156

LINUX 时间和日期

时间与日期通常对于一个程序来说可以确定时间与日期是十分用的。也许他要记录其运行的时间,或者是他要一个特定的时间改变其形为。例如,一个游戏程序也许不会在工作时间运行,或者是一个备份调度会在启动自动备份之前等待早些的工作完成。所有的Unix系统对于时间与日期都使用相同的起始点:1970年1月1日午午夜GMT。这是Unix的创世纪,而Linux也不例外。而在Linux系统中所有的时间...

2010-04-01 19:09:56 104

RGB 转换至 YCbCr (YUV) 的计算公式

对于每个取样点的 R,G,B 值, 在转换到 YUV colour space 时, 首先定义画面的平均亮度值(Luminance), Y, 其计算公式为:Y = kr*R + kg*G + kb*Bkr, kg, kb 为 weighting factors (加权因数), kr + kg + kb = 1 恒定.(其中, ITU-R BT.601 定义 kb = 0.114 ...

2010-03-28 12:46:53 758

编译错误小记 - fcntl2.h

编译gcc-3.3.6的时候,出现以下错误: /usr/include/bits/fcntl2.h:51: error: call to '__open_missing_mode' declared with attribute error: open with O_CREAT in second argument needs 3 arguments    这纯属软件bug,因为使...

2010-03-16 17:17:55 425

IPC之消息队列

消息队列缺点:1. 如果进程创建了一个消息队列,在该队列中放入了几则消息,然后终止,但是该消息队列及其内容并不会被删除。直到出现一下情况:某个进程调用msgrcv或msgctl读消息或删除消息队列,某个进程执行ipcrm(1)命令删除消息队列,或由正在启动的系统删除消息队列。2. 消息队列有大小限制,通常只用于小数据量的发送。系统对用户的大小限制可以通过 ulimit -q 命...

2010-03-13 12:05:12 100

如何让errno多线程/进程安全

在linux或者unix环境中,errno是一个十分重要的部分。在调用的函数出现问题的时候,我们可以通过errno的值来确定出错的原因,这就会 涉及到一个问题,那就是如何保证errno在多线程或者进程中安全?我们希望在多线程或者进程中,每个线程或者进程都拥有自己独立和唯一的一个 errno,这样就能够保证不会有竞争条件的出现。一般而言,编...

2010-03-13 11:35:31 230

Linux下库相关的概略介绍及动态库的搜索路径优先级

(本文主要针对动态连接库,内容来源网络,重新整理之,高亮部分的请重点关注) 一.基本知识  总体来说, 库可以有三种使用的形式: 静态、共享和动态. 静态库的代码在编译时就已连接到开发人员开发的应用程序中, 而共享库只是在程序开始运行时才载入. 在编译时, 只是简单地指定需要使用的库函数. 动态库则是共享库的另一种变化形式. 动态库也是在程序运行时载入,...

2010-03-13 11:29:57 119

ftok函数

系统建立IPC通讯(如消息队列、共享内存时)必须指定一个ID值。通常情况下,该id值通过ftok函数得到。ftok原型如下: key_t ftok( char * fname, int id) fname就时你指定的文件名,id是子序号。在一般的UNIX实现中,是将文件的索引节点号取出,前面加上子序号得到key_t的返回值。如指定文件的索引节点号为655...

2010-03-13 11:01:29 108

理解I/O Completion Port

欢迎阅读此篇IOCP教程。我将先给出IOCP的定义然后给出它的实现方法,最后剖析一个Echo程序来为您拨开IOCP的谜云,除去你心中对IOCP的烦恼。OK,但我不能保证你明白IOCP的一切,但我会尽我最大的努力。以下是我会在这篇文章中提到的相关技术:   I/O端口   同步/...

2010-03-13 10:42:09 85

右左法则

Theright-left rule: Start reading the declaration from the innermostparentheses, go right, and then go left. When you encounterparentheses, the direction should be reversed. Once everything in t...

2010-03-06 17:30:23 93

16道嵌入式C语言面试题

> 预处理器(Preprocessor)1. 用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)    #defineSECONDS_PER_YEAR (60 * 60 * 24 * 365)UL    我在这想看到几件事情:    1). #define语法的基本知识(例如:不能以分号结束,括号的使用,等等)    2)....

2010-03-06 17:28:53 98

elf格式学习总结

当编译一个源文件生成目标文件时,会在目标文件中生成符号表和重定位表。符号表包含在文件中定义的全局符号以及在文件中引用的外部符号(外部函数或变量)。重定位表告诉链接器在哪些位置要进行重定位操作。编译生成的目标文件在文件的开始处会有一个elf头,描绘了整个文件的组织结构。它还包括很多节(section)。这些节有的是系统定义好的,有些是用户在文件中通过.section命令自定义的,链接...

2010-03-03 15:35:04 129

视频播放的基本原理

VLC是一个功能强大的玩意,能做很多有意思的事情。最简单的,从界面打开一个文件播放,也可以在命令行下使用,如C:\Program Files\VideoLAN\VLC>vlc.exe test.ts获取内置的帮助,会写到vlc-help.txtC:\Program Files\VideoLAN\VLC>vlc.exe -h获取更详细的帮助,有大量的选项介绍...

2010-03-03 10:08:49 205

About pci.ids

pci.ids -  This is a public repository of all known ID's used in PCI devices:ID's of vendors, devices, subsystems and device classes.   '1543' with red underline : VendorID   '30...

2009-12-23 21:01:29 444

原创 关于IO ports和IO memory

在IA32 Manuals-Basic Architecture中, 对于IO有二种寻址方式:1, IO Port(IO Address Space); 2, Memory-Mapped IO.        1) IO Port方式.         使用体系结构相关的in/out指令来访问IO端口,并且能够保证每一条指令都在下一条之前完成,也就是in/out指令是自然有序的。 ...

2009-12-21 15:30:01 993

原创 port I/O

Nameoutb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p,inl_p - port I/ODescriptionThis family of functions is ...

2009-12-21 15:27:44 217

原创 C++类型转换运算符的使用方法

C++的四个类型转换运算符已经有很久了,但一直没有弄清楚它们的用法,今天看到一本书上的解释,才大致地的了解了其具体的用法.具体归纳如下: reinterpret_cast该函数将一个类型的指针转换为另一个类型的指针.这种转换不用修改指针变量值存放格式(不改变指针变量值),只需在编译时重新解释指针的类型就可做到.reinterpret_cast 可以将指针值转换为一个整型数,但不能用...

2009-12-21 14:34:48 80

《iPhone开发基础教程》源代码 下

iPhone开发基础教程的源代码,在初学阶段,要用到这本书,实例写得很详细,源代码当然要用的了!

2009-08-13

《iPhone开发基础教程》源代码 上

iPhone开发基础教程的源代码,在初学阶段,要用到这本书,实例写得很详细,源代码当然要用的了!

2009-08-13

空空如也

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

TA关注的人

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