- 博客(19)
- 收藏
- 关注
原创 字符串IP和数字转换的杂谈
long ip_to_value(const string& strIP)//低字节在后,高字节在前{ int a[4]; string IP = strIP; string strTemp; size_t pos; size_t i=3; do { pos = IP.find("."); if(pos
2011-12-10 19:47:24 2827
转载 C++箴言:理解inline化的介入和排除
inline 函数——多么棒的主意啊!它们看起来像函数,它们产生的效果也像函数,它们在各方面都比宏好得太多太多,而你却可以在调用它们时不招致函数调用的成本。你还有什么更多的要求呢? 实际上你得到的可能比你想的更多,因为避免函数调用的成本只是故事的一部分。在典型情况下,编译器的优化是为了一段连续的没有函数调用的代码设计的,所以当你 inline 化一个函数,你可能就使得编译器能够对函数体
2011-11-28 22:55:14 512
原创 c++读二进制文件
#include #include const size_t BUF_LEN = 2;int main(){ using namespace std; ifstream sour_file( "s.dat" ); for( char buf[BUF_LEN]; sour_file.read(buf,BUF_LEN), sour_file.gcount(); )
2011-11-16 11:10:12 1062
原创 log4cplus server client模式
在多进程使用log4cplus同时向一个日志文件写的时候,官方的FAQ建议使用SoskcetAppender, 即以server client模式来写日志,保证写日志同步。写了一个小程序,fork出一个server进程,和5个client进程来写日志,当日志大小到达4G的时候做切割。/* * ==============================================
2011-11-15 17:28:22 2780
原创 makefile 小技巧
make的时候有时会出很多的warning和error,但是和一般信息混在一起看起来非常麻烦。这时可以把错误信息重定向到文件中,查看起来就方便多了。make 2> haha
2011-11-15 12:41:25 470
转载 c语言sin函数
double my_sin(double x){ register double ret; __asm__ ( "fsin" : "=t" (ret) : "0" (x) ); return ret;}//计算x(弧度表示)的正弦值。int main(){ printf("%f/n",sin(0.5)
2011-11-11 14:41:48 4040
原创 sql query error, 1153, Got a packet bigger than 'max_allowed_packet' bytes
MYSQL error: Got a packet bigger than ‘max_allowed_packet’ bytes 在使用 longtext 类型执行数据录入时,有时会抛出这个异常, 从字面理解就是当前包大小超过 mysql 系统设置的包大小无法执行操作。 解释一下包大小这个东西:简单来说就是mysql把当前执行的mysql语句看作是一个包, 而对这个包大小的限制
2011-11-10 15:32:18 935
原创 c++中vector的遍历及元素删除
#include #include using namespace std;int main(){ vector test_vec; for (int i = 0; i<100;i++) { test_vec.push_back(i); } for(vector::iterat
2011-11-09 10:48:16 34220 4
翻译 DNS 101
As stated earlier, DNS is a distributed data base. When you pay a fee to register a domain one of the questions you answer deals with your Name Servers. You have to list two and they have to be regi
2011-11-08 16:09:42 1196 1
转载 MYSQL参数 DELAY_KEY_WRITE说明
本文转自:http://dev.firnow.com/course/7_databases/mysql/Mysqljs/20100603/207726.html 这个参数只对MyISAM引擎表有作用。 DELAY_KEY_WRITE是指在表关闭之前,将对表的update操作指跟新数据到磁盘,而不更新索引到磁盘,把对索引的更改记录在内存。这样MyISAM表可以使索引更新更快。
2011-11-03 20:21:46 572
转载 MySQL中update一张表到另一张表
以下的文章主要介绍的是MySQL 数据库中如何将一个实际应用表的相关数据插入到另外一个表的实际操作方法,此方案看起来很简单但是并非如此,虽然这个实现起来非常简单,但是还是会困扰许多新手,因此专门发一篇文章备查。开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,虽然这个实现起来非常简单,但是还是会困扰许多新手,因此专门发一篇文章备查。如果2张表的字段一致,并
2011-11-03 20:17:42 1913
原创 pstack 看活动的进程内的堆栈
今天写个多线程程序,自己用c写了一个线程池,刚开始还好使,但是跑半个小时左右就会卡死,也不知道卡在哪里,因为多线程的程序,日志也是乱七八糟的,看起来毫无头绪,上网查了一下,发现了pstack,用法如下:pstack 进程号 >stack.txt文件名随便起。顺便提一下,用top查看某个进程的信息,top -p 进程号
2011-11-03 16:08:28 1651
原创 libcurl
今天遇到两个奇怪的问题,都是关于libcurl的,可能是这个库本身的bug,记下来好了1:int OUtSourceImp(const char * post_url, const char * post_data){CURL *curl; CURLcode res; FILE *fptr; int res_code = 0;……}这样一
2011-11-03 16:06:41 415
转载 c++如何判断一个字符串是否只有可见字符
#include #include#include#include #include using namespace std;int main(){ string str="Hello World!1234567890~!@#$%^&*()_+|"; char c = 150; str += c;
2011-11-03 13:22:21 3987
原创 linux 中的top命令下的VIRT RES
VIRT:1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量RES:1、进程当前使用的内存大小,但不包括swap out2、包含其他进程的共享3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反4、关于库
2011-11-03 11:08:40 1132
原创 linux 下遍历文件夹下的所有文件
linux C 遍历目录及其子目录#include #include #include #include #include #include #include using namespace std;void listDir(char *path) { DIR *pDir
2011-11-02 10:51:37 2269
原创 c语言中的线程池
c语言中没有线程池,但是项目要用到,于是就从网上找了个代码,根据我的情况改了改,大体可以用了。大概的过程是这样的。1)初始化线程池,指定最大线程数;2)将工作线程添加到线程池的等待队列中;3)创建线程;4)依次执行线程,等待队列中没有线程的话,线程就会彻底退出了;5)等待所有线程结束;6)销毁线程,退出。PS: 下面的代码有轻微的内存泄露,有没有人可
2011-11-01 18:22:27 568
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人