程序人生
文章平均质量分 69
macky0668
这个作者很懒,什么都没留下…
展开
-
常用HTML代码,字体颜色等
常用HTML代码,字体颜色等 1.初级字体特效加粗 代码:加粗 蓝色标明:需要加粗的文字.倾斜代码:倾斜 蓝色标明:要倾斜的文字.下划线代码:下划线 蓝色标明:要加下划线的文字.删除线代码:删除线 蓝色标明:要加下划线的文字.字体加大代码:字体加大 蓝色标明:要放大的文字.字体控制大小代码:字体大小(其中字体大小可从H1-H转载 2009-05-07 11:19:00 · 11271 阅读 · 0 评论 -
非阻塞IO处理上几个常见问题
Operation now in progress 原因:把socket设为非阻塞,connect时候就会返回“Operation now in progress”,这表示连接已经在建立但还没有完成,随后加上select来实现connect超时,但理论上不会把该错误信息返回给client,检查发现由于原来api在每次connect没有对errno清0,可能会导致当connect出错时,返回给cli原创 2009-08-28 14:50:00 · 27152 阅读 · 0 评论 -
Linux性能分析工具详解
<h3 class=" ">Linux性能分析工具详解 一、tcpdump常用用法:这里用sudo因为当前帐号无权使用tcpdump,这里仅以一个tcp的例子来说明:sudo /usr/sbin/tcpdump tcp port 80 and host 172.23.1.69 -ieth1 -n每一行中间都有这个转载 2009-09-04 16:34:00 · 4386 阅读 · 1 评论 -
通过valgrind、gdb定位程序问题的几个方法小结
通过valgrind、gdb定位程序问题的几个方法小结 一,用valgrind定位程序问题 在排查程序问题时候,我们会经常用到gdb。gdb确实是定位程序问题的很有用的工具。但是很多时候我们用gdb来定位问题,会发现不好定位,花了很多时候把发生core的地方找到了,可是还是不知道为何会发生该错误-----因为常常产生core的地方是由于在core之前的错误导致的。 这时转载 2009-07-07 17:58:00 · 6208 阅读 · 0 评论 -
tcpdump
常用用法(这里用sudo因为当前帐号无权使用tcpdump,这里仅以一个tcp的例子来说明):sudo /usr/sbin/tcpdump tcp port 80 and host 172.23.1.69 -ieth1 -n 每一行中间都有这个包所携带的标志:S=SYN,发起连接标志P=PUSH,传送数据标志F=FIN,关闭连接标志ack 表示确认包R转载 2009-07-07 18:00:00 · 1629 阅读 · 0 评论 -
gprof工具输出数据的含义
假设有一个程序源文件hello.c内容如下:#include static void my_print (char *);static void my_print2 (const char *);main (){ char my_string[] = "hello world!"; my_print (my_string); my_print2 (my_string); m转载 2009-09-10 19:05:00 · 1136 阅读 · 0 评论 -
关系数据库设计范式介绍
关系数据库设计范式介绍 .1 第一范式(1NF)无重复的列 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重转载 2009-09-08 11:11:00 · 655 阅读 · 0 评论 -
浅析Linux内存管理
http://hi.baidu.com/noah1618/blog/item/3de7342ff74346311f30898a.html浅析Linux内存管理原文:http://blog.csdn.net/littlehedgehog/archive/2008/08/31/2856933.aspx看得懂一段kernel代码,但就是不太清楚这段代码在Linux中究竟有什么转载 2009-09-11 18:41:00 · 1051 阅读 · 0 评论 -
字符串处理相关
ascii码表:http://edu.codepub.com/2009/0831/14789.phpstrlen、strcpy、memcpy等函数的源码:http://hi.baidu.com/heelenyc/blog/item/04b2f83de72bd8c87c1e7162.htmlstrcpy源码分析:http://hi.baidu.com/chinsung/blog/item/7原创 2010-01-13 16:20:00 · 655 阅读 · 0 评论 -
敏捷中,尴尬的pm
敏捷核心圈知识分享系列(十)——敏捷中,尴尬的pm 我们执行敏捷项目管理,可是敏捷管理中没有pm角色的详细定位,身处pm岗位的同学,一定比较困惑和迷茫吧。 传统项目中,处在星海中心的pm,要对项目目标的达成承担责任,他建立团队工作的流程,审核工作成果,负责同客户、用户、上级、项目团队的沟通。因此他是整个项目的核心,责任重大,也拥有非常多的决策和考核权力。 如果项目规模转载 2009-12-11 18:07:00 · 1207 阅读 · 0 评论 -
大型高并发高负载网站的系统架构
我在Cernet做过拨号接入平台的搭建,而后在Yahoo3721负载搜索引擎前端平台开发,又在猫扑处理过大型社区猫扑大杂烩的架构升级等工作,同时自己接触和开发过不少大中型网站的模块,因此在大型网站应对高负载和并发的解决方案上有一些积累和经验,可以和大家一起探讨一下。 一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,转载 2009-08-27 13:06:00 · 571 阅读 · 0 评论 -
GDB中文手册
GDB中文手册/****************************************************/用GDB调试程序GDB概述 2使用GDB 5GDB中运行UNIX的shell程序 8在GDB中运行程序 8调试已运行的程序 两种方法: 9暂停 / 恢复程序运行 9一、设置断点(BreakPoint) 9二、设置观察点(WatchPoint) 10三、设置捕捉点(CatchPo转载 2009-06-18 12:26:00 · 1331 阅读 · 0 评论 -
C运算符优先级
优先口决括号成员第一; //括号运算符[]() 成员运算符. ->全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&乘除余三,加减四; //这个"余"是指取余运算即%移位五,关系六; //移位运算符:> ,关系:> = 等于(与)不等排第七; //即== !=位与异或和位或; //这几个都是位运算: 位与(&)异或转载 2009-05-18 18:18:00 · 19135 阅读 · 2 评论 -
标准C++中string类及STL容器类简介
标准C++中string类及STL容器类简介 一.标准C++库字符串类std::string的用法#includestd::string s1;std::string s3(s2);std::string s2("this is a string");begin 得到指向字符串开头的Iteratorend 得到指向字符串结尾的Iteratorrbegin 得到指向反向字符串开头的Iterato转载 2009-07-27 17:33:00 · 2272 阅读 · 0 评论 -
详细解说STL string
详细解说STL string 详细解说STL string 0 前言: string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花缭乱的string find 函数 1.3 string insert, replace, erase 2 string 和 C风格字符串 3 string 和 Charact转载 2009-07-27 17:37:00 · 715 阅读 · 0 评论 -
网站加速--Cache为王篇
<h3 class=" ">网站加速--Cache为王篇 From: http://blog.sina.com.cn/iyangjian一,Cache, 王道也二,Cache 基本原理介绍三,我划分的3个刷新级别四,我对HTTP协议做的一点创新(?maxage=6000000)五,Yslow优化网站性能的14条军规点评六,上线了 !=转载 2009-05-19 17:18:00 · 1268 阅读 · 1 评论 -
如何设置socket的Connect超时(linux)
如何设置socket的Connect超时(linux) 1.首先将标志位设为Non-blocking模式,准备在非阻塞模式下调用connect函数2.调用connect,正常情况下,因为TCP三次握手需要一些时间;而非阻塞调用只要不能立即完成就会返回错误,所以这里会返回EINPROGRESS,表示在建立连接但还没有完成。3.在读套接口描述符集(fd_set rset)和写套接口描述符集(fd_转载 2009-06-08 19:30:00 · 2456 阅读 · 0 评论 -
应用 Valgrind 发现 Linux 程序的内存问题
应用 Valgrind 发现 Linux 程序的内存问题级别: 初级杨 经 (cdlyangj@cn.ibm.com), 软件工程师, IBM2008 年 11 月 27 日如何定位应用程序开发中的内存问题,一直是 inux 应用程序开发中的瓶颈所在。有一转载 2009-06-12 10:26:00 · 842 阅读 · 0 评论 -
C/C++编译里的堆和栈的问题
C/C++编译里的堆和栈的问题2008-09-27 10:30在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。 堆:顺序随意 栈:后进先出(Last-In/First-Out)简单的可以理解为: heap:转载 2009-06-18 14:24:00 · 704 阅读 · 0 评论 -
缓冲区溢出的原理和实践
经典转载 - 缓冲区溢出的原理和实践(Phrack) 简 介 在过去的几个月中,被发现和利用的缓冲区溢出漏洞呈现上升趋势.例如syslog,splitvt, sendmail 8.7.5, Linux/FreeBSD mount, Xt library, at等等.本文试图解释什么是缓冲区溢出, 以及如何利用.转载 2009-06-18 14:42:00 · 961 阅读 · 0 评论 -
malloc()和calloc()
malloc()和calloc()2007年06月15日 星期五 15:57 进程对动态内存的请求被认为是不紧迫的。例如,当进程的可执行文件被装入时,进程并不一定立即对所有的代码进行访问。类似地,当进程调用malloc() 请求动态内存时,并不意味着进程很快就会访问所有获得的内存。因此一般来说,内核总是尽量推迟给用户态进程动态分配内存。 The kernel s转载 2009-06-18 18:24:00 · 780 阅读 · 0 评论 -
C++中的随机数函数
C++中的随机数函数C++用的是rand()这个函数是用来产生随机数的,范围从0到RAND_MAX, 在中有这样一个定义: #define RAND_MAX 0x7fff //就是32767了 如果需要产生n到m范围内的随机整数,可以: int ans=rand()*(m-n)/RAND_MAX+n; 如果要产生精度更高、更加均匀的随机数,有一个简单的方法,是把若干15位随转载 2010-01-06 09:44:00 · 2769 阅读 · 0 评论 -
C++引用与指针的比较
这几天和毕业生交流,发现引用和指针分不清楚,转载一下,这篇写得比较透彻了:C++引用与指针的比较引用是C++中的概念,初学者容易把引用和指针混淆一起。 一下程序中,n是m的一个引用(reference),m是被引用物(referent)。 int m; int &n = m;n相当于m的别名(绰号),对n的任何操作就是对m的操作。所以n既不是m的拷贝,也不是指向m的转载 2010-03-24 14:40:00 · 765 阅读 · 0 评论 -
gcc与obj文件,动态链接文件和ELF文件
gcc与obj文件,动态链接文件和ELF文件转载 2010-11-30 10:47:00 · 1329 阅读 · 0 评论 -
gcc和g++的区别
gcc和g++的区别转载 2010-11-29 23:07:00 · 606 阅读 · 0 评论 -
弱符号与强符号
弱符号与强符号转载 2010-11-29 23:51:00 · 1261 阅读 · 1 评论 -
Lib库使用学习笔记
Lib库使用学习笔记转载 2010-11-30 10:46:00 · 1587 阅读 · 0 评论 -
hash函数学习总结,以及与hashcode()、hashMap的关系
hash函数学习总结,以及与hashcode()、hashMap的关系转载 2010-11-18 22:46:00 · 1192 阅读 · 0 评论 -
define和typedef区别
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926程序中的:area=PI*r*r 会替换为3.1415926*r*r如果你把#define语句中的数字9 写成字母g 预处理也照样带入。2)typedef是在编译时处理的转载 2011-06-21 15:45:00 · 662 阅读 · 0 评论 -
新浪微博技术架构分析
大家下午好,在座的大部分都是技术开发者,技术开发者往往对微博这个产品非常关心。最晚的一次,是12点多收到一个邮件说想了解一下微博底层是怎么构架的。很多技术人员对微博的构架非常感兴趣,就是一个明星他有300万粉丝,这个技术怎么来实现?今天在这里跟大家分享一下微博的底层机构,让大家对转载 2011-09-29 18:17:02 · 1563 阅读 · 2 评论 -
C++ 全部关键字
C++ 全部关键字 (1)auto 这个这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。(2)register 这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高效率。(3)st转载 2012-07-16 15:22:47 · 16764 阅读 · 0 评论 -
两阶段提交
一阶段提交(1PC One Phase Commit) 一 阶段提交就是事务处理器向数据库服务器发出提交请求,然后等待数据库服务器的回应,收到回应后完成事务的提交,或者服务器返回提交失败的结果就回撤事务。 危险期从发出请求开始,到收到回应结束,这段时间中数据库完成数据的修改、日志记录等处理,处理越复杂,危险期就越长。 两阶段提交(2PC Two Phase Com转载 2012-12-03 17:48:39 · 3543 阅读 · 0 评论 -
Lib库使用学习笔记
Lib库使用学习笔记转载 2010-11-30 10:43:00 · 4985 阅读 · 0 评论 -
C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)
C++设计模式之一 工厂模式(简单工厂、工厂和抽象工厂)转载 2010-06-08 11:49:00 · 1349 阅读 · 0 评论 -
字节序问题--大端法小端法
【技术】【转】字节序问题--大端法小端法一、字节序定义字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Litt转载 2010-01-12 23:28:00 · 549 阅读 · 0 评论 -
泛型编程 vs. 面向对象
泛型编程 vs. 面向对象 1、面向对象:封装(数据抽象)是基础,继承是手段,多态是目的;泛型编程:参数化类型(概念抽象)是基础,模板是手段,通用是目的2、面向对象是运行时问题空间的多态,泛型编程是编译时算法空间的多态3、OO以Type为中心,GP以Concept为中心,而Concept完全独立于Type;OO的type是显式定义的,type之间的关系也是显式定义的,是语言支持的 ;G转载 2010-03-29 19:07:00 · 937 阅读 · 0 评论 -
STL泛型编程和设计新思维
http://anders0913.javaeye.com/blog/387391http://blog.csdn.net/wuliaoshengji/archive/2005/08/10/449870.aspx转载 2010-03-29 19:09:00 · 1035 阅读 · 2 评论 -
LINUX下mysql的大小写区分问题
LINUX下mysql的大小写区分问题1、linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写; 2、用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写; lower_case_table_names参数详解: lower_case_转载 2010-03-30 11:22:00 · 753 阅读 · 0 评论 -
SourceInSight里面一些小的设置的技巧
SourceInSight里面一些小的设置的技巧 1. SMART TAB的用法. 解决自动缩进. 新开一个PROJECT后,点Options->Document Options,弹出对话框后先在左上角选好要用的Document Type,主要就是设C Source File和C++ Source Fi原创 2010-03-30 15:23:00 · 3274 阅读 · 0 评论 -
typedef的四个用途和两个陷阱
typedef的四个用途和两个陷阱转载 2010-07-08 16:43:00 · 497 阅读 · 0 评论