自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 收藏
  • 关注

下载最新的firefox源码并编译

1.准备MozillaBuild在下面地址下载最新的MozillaBuildhttp://ftp.mozilla.org/pub/mozilla/libraries/win32/目前最新的是http://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-1.4.exe推荐安装到c:\mozilla-bui...

2009-12-07 11:19:04 451

原创 The Elements of Programing Style

把代码写清楚,别耍小聪明。想干什么,讲的简单点、直接点。只要有可能,使用库函数。避免使用太多的临时变量。“效率”不是牺牲清晰性的理由。让机器去干那些脏活。重复的表达式应该换成函数调用。加上括号、避免歧义。不要使用含糊不清的变量名。把不必要的分支去掉。使用语言的好特性,不要使用那些糟糕的特性。该用逻辑表达式的时候,不要使用过多的条件分支。如果逻辑表达式...

2009-08-09 18:26:23 161

异步信号安全的posix函数(备忘)

可重入就是异步信号安全。可重入的要求比多线程安全更严格。crt的io函数和malloc、free函数都不是可重入的。但是有的字符串处理函数可重入。满足下列条件的函数是不可重入的: 1) 函数体内使用了静态的数据结构; 2) 函数体内调用了malloc() 或者free() 函数; 3) 函数体内调用了标准I/O 函数。如何编写可重入的函数:...

2009-08-06 09:23:51 578

用VC和MinGW导出dll的def和lib(a)文件

有了dll文件需要导出def文件:pexports zlib1.dll > zlib1.def有了dll和def文件,需要导出MinGW的.a文件:dlltool --dllname zlib1.dll --def zlib1.def --output-lib libz.dll.a有了dll和def文件,需要导出一个VC的lib文件:lib /machine:i386 ...

2009-06-08 23:11:15 498

原创 什么是Mock测试?

mock测试:就是在测试过程中,对于某些不容易构造或者 不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。mock对象:这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。mock对象使用范畴:真实对象具有不可确定的行为,产生不可预测的效果,(如:股票行情,天气预报)真实对象很难被创建的真实对象的某些行为很难被触发真实对象实际上...

2009-05-29 03:20:34 378

Google Chrome有用的命令行参数

--user-agent="xxxxxxxx"修改HTTP请求头部的Agent字符串,可以通过about:version页面查看修改效果--user-data-dir="dir"修改临时文件存放的位置在这里下载windows的nightly build,直接解压到一个目录就可以用了[url]http://build.chromium.org/buildbot/s...

2009-05-17 22:13:07 387

valgrind中文命令行帮助

名字: valgrind是一个调试和剖析的程序工具集。概要用法: valgrind [[valgrind] [options]] [your-program] [[your-program-options]]概述: Valgrind是一个Linux下灵活的调试和剖析可执行工具。它由在软件层提供综合的 CPU内核,和一系...

2009-05-16 20:04:30 248

原创 用wget下载整个网站

wget下载整个网站可以使用下面的命令 wget -r -p -k -np http://hi.baidu.com/phps , -r 表示递归下载,会下载所有的链接,不过要注意的是,不要单独使用这个参数,因为如果你要下载的网站也有别的网站的链接,wget也会把别的网站的东西下载 下来,由于互联网的特性,很有可能你会把整个互联网给下载下来 --,所以要加上 -np这个参数,表示不下载别的站点的...

2009-05-13 09:03:24 205

使用google breakpad生成dump文件

使用google breakpad生成dump文件breakpad的主要功能就是生成dump文件,还可以将dump文件发送的远程http服务器。breakpad的SVN在这里http://google-breakpad.googlecode.com/svn/trunklinux,mac,solaris,windows下面产生dump文件的例子文件在这几个文件里面,他们的流程几乎是一...

2009-05-12 16:49:04 423

在VS2005中使用IBM Purify的注意事项

[b]Rational Purify 使用及分析实例可以见这里[/b]http://www.ibm.com/developerworks/cn/rational/r-cail但是如果使用VC7,8,9的默认编译和链接设置,那是肯定找不到准确的错误位置的。为此,需要在VC8(VC7和VC9类似)中一些编译和链接参数要修改如下:Debug Information Format - Pr...

2009-05-12 12:24:54 134

linux突破打开文件描述符限制

都要有管理员权限才行 修改/proc/sys/fs/file-max文件中的那个数字,改的大一点无所谓 然后ulimit -n 60000

2009-05-05 09:27:09 115

Windows下用C语言获取进程cpu使用率,内存使用,IO情况

一个项目需要,特地写了这些功能的函数。process_stat.h的内容如下:[code="c"]/** @file* @brief 进程统计信息函数的声明* @author 张亚霏* @date 2009/05/03* @version 0.1**/#ifndef PROCESS_STAT_H#define PROCESS_STAT_H...

2009-05-03 19:56:54 596

下载最新的Google Chrome源码并编译

之所以这么喜欢chrome,就是因为它开放。与firefox不同,ff使用了mozilla的一些技术:xul、xpcom,而且编译过程非常复杂,不适合研究学习。chrome使用了最普通的lib:WTL、zlib、libpng、sqlite、webkit,连v8也不是专门为chrome开发的,它甚至可以独立在命令行中解释js代码。编译过程中使用了最最最平常不过的工具python,svn,cygwin...

2009-05-02 01:48:41 530

HOOK IAT的代码与例子,备忘

[code="C++"]#include PVOID HookAPI(PBYTE pbModule, PCSTR pszName, PVOID pvOrg, PVOID pvNew){ PIMAGE_THUNK_DATA r; PIMAGE_NT_HEADERS p; PIMAGE_IMPORT_DESCRIPTOR q; p = (PIMAGE_NT_HEAD...

2009-04-29 16:04:23 100

一个很完善的war3录像分析库War3RepLib源码

原地址已经找不到了,而且里面的几个小bug和编译不过去的地方我已经修改了.Sample目录下是个例子.注意:请遵守GPL协议.

2009-04-08 14:49:15 430

才发现VC中也可以检测内存泄漏

[code="c++"]#include #define _CRTDBG_MAP_ALLOC#include #include #ifdef __cplusplus#ifdef DEBUG_NEW#undef DEBUG_NEW#endif#define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__)...

2009-03-30 14:54:38 103

A wrong usage of boost.enable_shared_from_this

A wrong program in boost-user mail list:[code="C++"]#include #include #include #include // Inheritance Layout//// boost::enable_shared_from_this// ^// |// Base --------> ...

2009-03-14 14:59:04 92

原创 GDB原理以及ptrace

[url]http://linux.chinaunix.net/salon/200712/files/gdb.ppt[/url][url]http://book.csdn.net/bookfiles/101/1001012892.shtml[/url][url]http://blog.chinaunix.net/u/19651/showart_362901.html[/url]

2009-01-26 14:58:29 200

摘抄的经典语录

我绝对是一个合格的程序员。而且将会是一个顶级程序员。只有那些半调子程序员才会改做PM。看看UNIX的先知们,他们是我心中的灯塔。看看GNU的先锋们,他们就是我努力学习的目标。一心想成为富翁的人,永远成不了黑客。黑客不是一个贬义词。我没有见过任何一个顶级程序员来自商业企业。如果顶级程序员来到商业企业,资本的驱动必然会毁了他。我以前在Windows平台上想学...

2009-01-25 15:41:19 186

原创 HTTP客户请求的数据格式说明

HTTP客户请求的数据格式说明 HTTP请求包括三部分:请求行(Request Line),头部(Headers)和数据体(Body)。其中,请求行由请求方法(method),请求网址Request-URI和协议 (Protocol)构成,而请求头包括多个属性,数据体则可以被认为是附加在请求之后的文本或二进制文件。 下面这个例子显示了一个HTTP请求的Header内容,这些数据是真正以...

2008-12-27 18:51:10 125

自己用了很久的线程注入的代码

[code="c"]#include #include #include #pragma comment(lib, "Advapi32.lib")BOOL SetPrivilege(HANDLE hToken,LPCTSTR lpszPrivilege,BOOL bEnablePrivilege)//improve a privilege{ TOKEN_PR...

2008-12-11 20:16:24 145

Linux和WIndows都不支持自连接

Cygwin下结果:connect() 127Transport endpoint is already connectedVC8下结果:connect() 10022No errorLinux 2.6.27下结果:connect() 106Transport endpoint is already connected[code="c"]...

2008-12-09 09:29:31 97

原创 拔掉你的鼠标 完全用命令行

[url]http://blog.youxu.info/2008/09/04/unplug-your-mouse/[/url][url]http://blog.youxu.info/2008/09/10/gtd-by-cli/[/url][url]http://blog.youxu.info/2008/09/16/cli/[/url]

2008-12-08 23:13:08 95

SO_RCVBUF选项的大小和接受窗口字节数关系

运行下面程序的同时打开任何一个抓包工具分析。实验表明Windows下面SO_RCVBUF选项的大小和接受窗口字节数无关。窗口大小都是8192。Linux 2.6.27中窗口大小和SO_RCVBUF选项有关,好像是进位到下一个1460的整数倍,例如:1024->14602500->2920[code="c"]/*作者:张亚霏2008-12-08晚...

2008-12-08 20:08:45 1107

time_t的问题

2008年05月26日 星期一 12:29今天一上午调了一个网络程序,数据包中带有时间戳,我是用time_t来表示的client用的是winxp + vc8server用的是linux + gcc总是在包的持久化和反持久化出问题,原因在于:gcc中typedef long time_t;vc中typedef __int64 time_...

2008-12-07 11:34:22 221

volatile的意义

2008年09月21日 星期日 20:14对于程序员就是variables that are changing or changed对于编译器就是禁止把变量放在寄存器中优化,每次都从内存中读取数据就这么简单...

2008-12-07 11:32:25 191

C++编译器何时提供默认的构造函数和拷贝构造函数

2008年08月27日 星期三 10:16总的来说,编译器只在它需要的时候才会合成一个默认构造函数,或者扩张所有已存在的构造函数。一个类满足下列其中任何一个条件:1.包含了一个类的对象,这个对象有一个构造函数(包括编译器合成的默认构造函数)2.如果继承自一些基类,其中某些基类有一个构造函数(包括编译器合成的默认构造函数)3.有一个虚函数,或者继承到了虚函数4.有虚基...

2008-12-07 11:32:01 331

原创 Why Map/Reduce?

从Google在OSDI'04上发表了Map/Reduce这篇Paper;到Yahoo!在06年雇佣Doug Cotting,投入对Hadoop最大的关注,以期提高其计算能力对抗Google;再到CMU CS的系主任发表Tech report提出DISC(Data-Intensive Super Computing,在最近一次的Hadoop summit上,他演讲的slides将Sup...

2008-12-07 10:57:28 129

原创 free lunch of open source

Google File SystemGoogle有Google File System;Doug Cutting在Nutch中把Google FS实现了,最后这个项目从nutch中分出来,成为了现在的Hadoop — Hadoop Distributed FileSystem(HDFS)(Java);Google 两个共同创始人的两个大学同窗(印度人)Anand Rajaraman和V...

2008-12-07 10:57:12 121

原创 Google Architecture -- 翻译版

Google是伸缩性的王者。Google一直的目标就是构建高性能高伸缩性的基础组织来支持它们的产品。平台Linux大量语言:Python,Java,C++状态在2006年大约有450,000台廉价服务器在2005年Google索引了80亿Web页面,现在没有人知道数目目前在Google有超过200个GFS集群。一个集群可以有1000或者甚至5000台机器...

2008-12-07 10:55:59 189

TCPIP点点滴滴

之前学到的TCPIP里面很多点点滴滴都没有做笔记,可以了。2008-10-04UDP数据包截断[url]http://zhangyafei-kimi-163-com.iteye.com/blog/248817[/url]2008.10.04TCP协议里的时间[url]http://zhangyafei-kimi-163-com.iteye.com/blog/2488...

2008-12-06 23:32:15 109

UDP的ICMP差错的测试程序

[code="c"]/*作者:张亚霏2008-12-03早*//*UDP主机不可达、端口不可达测试*//*向一个已知主机的打开端口发一个UDP包,无任何异常*//*向一个已知主机的未打开端口发一个UDP包主机返回一个ICMP端口不可达报文结果就是之后的recvfrom返回-1GetLastError() WSAECONNRES...

2008-12-03 10:07:02 369

原创 epoll的一个demo,备忘

[code="c"]/**张亚霏修改文件名:epoll_demo.c编译: gcc epoll_demo.c -pthread程序源码如下(请自行编辑宏定义SERVER_IP为自己的IP):*//*Linux 2.6 x86_64 only*/#include #include #include #include #inc...

2008-12-02 21:12:29 217

用asio的定时器实现带超时的connect,备忘

[code="c++"]// test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace boost::asio;using boost::asio::ip::tcp;class connect_handler...

2008-11-30 19:39:06 342

自己写的IOCP的程序,备忘(2009-02-05更新)

[code="c"]#include #include #include #include #include #include #include "vld.h"#pragma message("automatic link to ws2_32.lib and mswsock.lib")#pragma comment(lib, "ws2_32.lib")#...

2008-11-30 19:10:05 92

原创 TCP连接非正常断开的检测

如果主机崩溃,write是否阻塞取决于内核的tcp缓冲区,但read将一直阻塞,直到超时ETIMEOUT,或由于某些中间路由器的原因返回EHOSTUNREACH/ENETUNREACH。select不能检测到该情况。如果主机崩溃并重起,客户的write到达主机时主机响应RST,客户的read将返ECONNRESET。此处的”非正常断开”指TCP连接不是以优雅的方式断开,...

2008-10-24 14:58:29 322

原创 exit和_exit的区别

exit()在结束调用它的进程之前,要进行如下步骤:1.cleanup();2.在atexit()注册的函数;最后调用_exit()函数。。。‘exit()’与‘_exit()’有不少区别在使用‘fork()’,特别是‘vfork()’时变得很突出。‘exit()’与‘_exit()’的基本区别在于前一个调用实施与调用库里用户状态结构(user-mode c...

2008-10-23 19:38:29 90

Linux-2.6.25 TCPIP函数调用大致流程

Linux-2.6.25 TCPIP函数调用大致流程学习目的,随手笔记。函数和文字说明会不断补充更新。Changelog2008.10.08 最近找工作忙。暂时缓缓插口层系统调用send sys_send sys_sendtosendto sys_sendto sock_sendmsgsendms...

2008-10-08 21:53:17 216

GDB常用命令

l(ist) (文件名:)行号/函数名 显示源码b(reak) (文件名:)行号/函数名 if 设置断点c(ontinue) 停止在断点后,继续非单步执行n(ext) 下一行s(tep) 单步start 开始单步执行stop 停止调试p(rint) 变量名 打印变量r(un) 开始执行q(uit) 退出s...

2008-10-07 16:07:52 80

GCC如何产生core dump

先决条件1.安装apport(automatically generate crash reports for debugging)2.修改/etc/security/limits.conf文件,使允许core dump,或者用ulimit -c unlimited设置core dump文件的大小为unlimited3.C/C++的编译开关-g(产生调试符号)###...

2008-10-07 16:03:35 871

空空如也

空空如也

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

TA关注的人

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