- 博客(218)
- 资源 (54)
- 收藏
- 关注
原创 数组作为参数时,传入基类首地址和子类首地址的区别
<br />class A<br />{<br />public:<br /> A() {};<br /> ~A() {};<br /><br /> virtual void SetTest(){ printf("a/n");};<br /> int m_iFirst;<br />};<br /><br />class B :public A<br />{<br />public:<br /> B() {};<br /> ~B() {};<br /><br />
2011-03-05 00:19:00
942
原创 分隔字符串的函数
<br />void SplitString(std::string strInput, char cSpliter, std::vector<std::string>& vecOutput)<br /> {<br /> int begin = -1, end = 0;<br /><br /> vecOutput.clear(); <br /><br /> while(1)<br /> { <br /> en
2011-03-05 00:17:00
626
原创 mysql复制创建表
<br />复制表Contact为Contact_bak<br /> <br />mysql> create table Contact_bak as select * from Contact<br /> <br />复制表Contact的结构<br /> <br />mysql> create table Contact_bak as select * from Contact where 1=2;
2011-03-05 00:15:00
1793
原创 一个js中包含另一个js的方法
<br />document.write("<script language='javascript' src='one.js'></script>");
2011-03-05 00:12:00
3417
原创 localtime函数注意事项
<br />经过一个小实验得到结论,localtime函数实现的时候采用的是一块固定buffer,因此如果多次调用此函数,结果值会是最后一次的结果值,如果需要保存每次运行函数的准确结果,需要在localtime函数调用后直接将buffer内容拷贝出来,否则将被后续调用覆盖。 bool IsSameDay(time_t time1, time_t time2)<br /> {<br /> struct tm * ptimeDetail;<br /> struct tm timeDetail1;<br
2011-03-04 23:37:00
1335
原创 多播代码
<br />客户端://///////////////////////////////////////////////////////////////////////////////////////// #include <sys/types.h><br />#include <sys/socket.h><br />#include <arpa/inet.h><br />#include <stdio.h><br />#include <stdlib.h><br />#include <string
2011-03-04 23:29:00
741
原创 多播的步骤
<br />1.创建socket socketfd = socket(AF_INET, SOCK_DGRAM, 0);<br /> if (-1 == socketfd)<br /> {<br /> perror("Opening socket");<br /> exit(EXIT_FAILURE);<br /> }<br />2.设置socket可重用并绑定 loop = 1;<br /> if (setsockopt(soc
2011-03-04 23:27:00
725
转载 通过汇编码理解switch语句的原理
<br />http://blog.chinaunix.net/u3/94078/showart.php?id=1888387 <br />当需要多次比较时,switch语句的效率比if-else if…… else语句(以后简称muti-if语句)的效率要高,这是我一直以来的理解,但是昨晚讨论到一个问题,这种“高效率”如何实现?今天早上又看到《更深入一点理解switch语句及c/c++对const的处理》和《透过IL看C# (1)switch语句》这两篇文章,前者(以后为[1])没有提及case语
2011-03-04 23:24:00
3839
原创 libmemcached用法
<br />#include <iostream><br />#include <string><br />#include <libmemcached/memcached.h>using namespace std;<br /> <br />int main(int argc,char *argv[])<br />{<br /> //connect server<br /> memcached_st *memc;<br /> memcached_return rc;<br />
2011-03-04 23:19:00
1689
原创 memcache错误码
<br />typedef enum {<br /> MEMCACHED_SUCCESS,<br /> MEMCACHED_FAILURE,<br /> MEMCACHED_HOST_LOOKUP_FAILURE,<br /> MEMCACHED_CONNECTION_FAILURE,<br /> MEMCACHED_CONNECTION_BIND_FAILURE,<br /> MEMCACHED_WRITE_FAILURE,<br /> MEMCACHED_READ_FAILUR
2011-03-04 23:13:00
5786
原创 python中import子目录module中py文件的方法
<br />python要import子目录module中的py文件,需要在module目录下放置一个__init__.py文件,__init__.py可以为空,只要它存在,就表明此目录应被作为一个package处理
2011-03-04 23:12:00
4177
原创 模板函数的嵌套调用
<br />template<class A, class B> void kkaka(A a, B b)<br />{<br /> a.kakaka<B>(b);<br />}在g++中,上面的声明会报错,原因在于a的kakaka函数被显式调用了,如果改为template<class A, class B> void kkaka(A a, B b)<br />{<br /> a.kakaka(b);<br />} 是可以正常运行,没有编译错误
2011-03-04 23:02:00
1389
原创 linux下的udp句柄
<br /><br />因为在Linux下,Socket描述符其实就是文件描述符,和硬盘文件及其它IO设备共享取值空间,因为0,1,2分别预留给了标准输入,标准输出和<br />标准错误,因此Socket描述符最小从3开始,而对于udp通信来说,由于是无连接的,所以整个系统可以只用一个,所以干脆直接把3预留给udp好了,最省时最搞笑的分配方案
2011-03-04 23:00:00
1296
原创 Linux索引节点(inode)用满导致的一次故障(转自张宴博客 http://blog.s135.com)
<br />一、发现问题:<br /> 在一台配置较低的Linux服务器(内存、硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66%,还有12G的剩余空间,按理说不会出现这种问题。<br /><br /> 二、分析问题:<br /> 后来用df -i查看了一下/data分区的索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件。<br /><br /><br /> inode译成
2011-03-03 15:51:00
1830
原创 移动硬盘只能识别一个分区,另一个变为RAW的解决办法
这几天遇到一个问题,我的朗科320G移动硬盘只能识别一个分区,另一个变为RAW格式,原因可能是gf平时用的时候经常碰到,热插拔导致分区表损坏,网上查了下,有下面几种解决办法:1.chkdsk (我的实验结果是 chkdsk对raw文件系统没有作用)2.修改分区的访问权限(对于我的情况同样无效)3.EasyRecovery的高级数据恢复(花了N长时间扫描,结果是一些删除已久的无关紧要的文件,失败告终)4.易我分区表医生,在安全模式下修复引导区(也是花了很长时间修复,最后提示失败)5.WinHEx(太复杂,没去
2011-01-09 23:26:00
11073
原创 牛生牛的问题,假如生出来的都是母牛
一个农户有一头牛,三年后开始生小牛,小牛3年后又开始生, 问N年后多少头牛, 假设生的都是母牛 struct Cow{ int m_iYear; Cow() { m_iYear = 0; } void UpdateYear() { m_iYear++; }
2009-10-31 17:33:00
1807
原创 IOCP server设计需要注意的几点
1.Server间socket的发送和接收缓存要足够大,以防在客户端并发操作时消息堆积导致的溢出2.Server端在最有可能大并发量的accept和disconnect操作上做排队处理,防止此种情况下导致server压力突增3.Server上对每个客户端做消息发送频率的限制,以防恶意攻击4.维持accept在一定的数量,防止出现accept越来越少,这样会导致后面的client无法接入
2009-10-31 16:50:00
888
原创 谈结构体中std::string所占的空间
#include #include struct test{ int iID; int iType; std::string strName; int iLevel; test() { iID = 2; iType = 2; iLevel = 2; strName = "Hello, world";
2009-06-12 18:30:00
6111
1
原创 bash编程心得 时间比较
#!/bin/bashdate1=`date +%y%m%d%H`if [ "$date1" -gt "08022800" ]then echo "after"else echo "before"fi
2009-05-09 16:29:00
1042
原创 makefile 学习
1. $? 表示依赖文件中被修改过的文件2. objects = $(wildcar *.o) 这个表示统配所有.o文件 ; 而 objects = *.o 表示字符串".o"3. objects := $(patsubst %.c,%.o,$(wildcard *.c)) 找目录下所有.c文件对应的.o文件作为目标文件4. 定义变量“VPATH”时,使用空
2009-05-09 16:28:00
722
原创 linux下某个用户无法登陆的问题
原因可能是此用户的主目录因为其他用户的某些操作而被破坏,或者是导致此用户没有访问此目录的权利。解决办法:1.在root用户下建立此用户的主目录2.将此目录设置为该用户全权限
2009-05-09 16:26:00
3643
原创 内存对齐
在VC中是以结构体中最长类型所占字节对齐,而所有类型的对齐必须是自己的整数倍位置上对齐。struct TestSize{ int a; double b; char c; short i; int d;};这个结构体占用24个字节,其中a独占8字节,b占8字节,c占第三个8字节的第一个字节,i占3、4字节,d占5、6、7、8字节 ----------------------
2009-05-09 16:25:00
389
原创 两种创建子目录的方法
1.纯C函数, 加windows创建目录函数CreateDirectorychar Buffer[256]; char buf[256]; char b[3]; char* p; sprintf(b,"//"); sprintf(Buffer,dd); p = Buffer; while(strchr(p,//))
2009-05-09 16:24:00
2051
原创 类的成员函数与线程函数
类的非静态成员函数之所以不能做线程函数,是因为线程函数需要被声明成WINAPI(即_stdcall)的,而类的非静态成员函数都是_thiscall的,不管编译器的内部实现如何,至少在逻辑上,后者比前者多一个隐式参数:this指针,因此这两种函数的指针不可以进行相互转换的。 静态函数是可以的,但在调用类成员函数时,类必须已经实例化。另外,你也可以把线程函数说明为类的友元函数(如果需要调
2009-05-09 16:24:00
558
原创 mysql configure err
安装mysql时出错:No curses/termcap library found的解决办法1../configure --with-named-curses-libs=/usr/lib/libncursesw.so.5 2.#apt-get install libncurses5-dev安装下就好了
2009-05-09 16:18:00
1462
原创 bash: groupadd: command not found
今天在安装MYSQL的时候,新建数据库用户。#groupadd mysql 结果提示:bash: groupadd: command not found是我变量不对吗?系统怎么会找不到groupadd 这条命令呢。后来一想。原来是su的错。之前是在普通用户下。直接 SU切换到ROOT用户。退出换成SU - 再切换到ROOT用户就好了。su 只能切换到管理员用户权限,不使用管理员的登陆脚本和搜索路
2009-05-09 16:17:00
695
原创 开启mysql日志
#Enter a name for the binary log. Otherwise a default name will be used. #log-bin= #Enter a name for the query log file. Otherwise a default na
2009-05-09 16:16:00
671
原创 mysql_options
1.MYSQL_OPT_CONNECT_TIMEOUT unsigned int * 以秒为单位的连接超时。 2.MYSQL_OPT_RECONNECT my_bool * 如果发现连接丢失,启动或禁止与服务器的自动再连接。从MySQL 5.0.3开始,默认情况下禁止再连接,这是5.0.13中的新选项,提供了一种以显式方式设置再连接行为的方法。
2009-05-09 16:15:00
5055
原创 mysql启动时指定ini
"C:/MySQL/bin/mysqld-nt" --defaults-file="C:/MySQL/my.ini"
2009-05-09 16:15:00
2494
原创 AcceptEx防止恶意攻击
AcceptEx的缓冲区为0,即在建立连接后不接收数据马上就从完成端口返回。返回后把这个连接插入到一个链表A。然后在这个连接上投递一个WSARecv,一旦这个连接发送了数据,WSARecv返回后,就马上把这个连接从链表A中移除。同时另外有一个线程定时遍历这个链表A来获取连接时间,一旦连接时间超过规定值,就把这个连接干掉。 一定要对连接的client进行心跳检查
2009-05-09 16:12:00
893
转载 win32控制台下制作定时器
#include #include using namespace std;void CALLBACK TimeProc( HWND hwnd, UINT message, UINT idTimer, DWORD dwTime);int main(){ SetTimer(NULL,1,1000,TimeProc); MSG msg
2009-05-09 16:11:00
738
原创 mysql 时间间隔
select c_item_id from t_char_item where CURRENT_TIMESTAMP() > DATE_ADD(c_buy_time, INTERVAL 5 DAY); select * from %s where time_stemp > (curdate() - interval 1 day) limit %d,%d select *
2009-05-09 16:09:00
734
原创 suse上安装locate
1.通过yast安装yast->software management search locate, 选中搜出的安装包安装 2.运行locate ,可能会出现 locate: /var/lib/locatedb, 这样需要运行updatesb来更新locatedb OK, 安装完毕
2009-05-09 16:07:00
1462
原创 CSocket Recvfrom() 返回错误 WSAECONNRESET
http://blog.csdn.net/xkou/archive/2006/12/06/1432349.aspx http://support.microsoft.com/kb/263823
2009-05-09 16:07:00
955
原创 程序中开始和结束某个进程
//////////////////////////////////////////////////////////////////////////////////////////////////////开始 string strWorkDir = GetWorkDirectory(); char szLoginPath[256] = {0}; char
2009-05-09 16:05:00
646
原创 截屏保存为BMP, 然后转换为jpg, 用GDI和GDI+
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CRUNMonitorDlg::OnBnClickedBmptojpg(){ CString strFilePath
2009-05-09 16:04:00
1879
原创 mfc中打开文件夹
////////////////////////////////////////////////////////////////////////////.hclass CBrowseDirDialog { public: CBrowseDirDialog(); virtual ~CBrowseDirDialog(); int DoBrowse(); CStr
2009-05-09 16:03:00
3176
原创 保证当前只有一个程序在运行
HANDLE m_hMutex=CreateMutex(NULL,TRUE, "YourApp"); if(GetLastError()==ERROR_ALREADY_EXISTS) { char szError[60]; LoadString(AfxGetInstanceHandle(),IDS_ERROR_PRGMRUNNING,szErro
2009-05-09 16:01:00
549
GNU make中文手册
2011-03-05
A Byte of Vim
2011-03-04
memcached全面剖析
2011-03-04
libevent源码深度剖析.pdf
2011-04-07
varnish实现原理
2011-02-25
FastDFS介绍 pdf
2011-04-08
网游服务器日志系统(以小时为单位生成日志)
2011-03-06
2011年DTCC数据库大会ppt下载
2011-04-21
QCon2010大会ppt下载
2011-05-03
Google C++编程规范(pdf 英文)
2011-03-09
Linux Debugging And Performance Tuning
2011-03-04
分布式系统工程实践 pdf
2011-06-30
svn hook脚本,实现commit提交逻辑检查,评论格式,文件格式逻辑设定
2021-05-25
Google MapReduce中文版 pdf
2011-06-30
淘宝软件基础设施构建实践 pdf
2011-06-30
socket工具包 c++
2011-08-18
具备守护监控功能的spawn-fcgi
2011-05-10
QCon2011企业软件开发大会ppt 3
2011-05-03
Bigtable:一个分布式的结构化数据存储系统[中文版] pdf
2011-06-30
gawk_eg.tar.gz
2021-11-08
mysql分布式事务实现 MySQL XA pdf
2011-05-15
QCon2011企业软件开发大会ppt 2
2011-05-03
QCon2011企业软件开发大会ppt 1
2011-05-03
The Google File System中文版 pdf
2011-06-30
ip智能识别php代码.zip
2021-05-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅