- 博客(22)
- 资源 (9)
- 收藏
- 关注
原创 linux自定义信号处理
有时候我们需要在程序中利用信号来控制程序行为,linux为我们提供了2个已经定义的信号SIGUSR1和SIGUSR2,一般的程序利用这2个信号已经能满足需要,不过我最近需要一些其他信号来避免覆盖原来的信号处理函数。 上网查了一下,看到了下面的程序片段: #define MYSIG_MSG (SIGUSR2 + 1)// 定义信号然后注册处理函数
2013-11-05 20:08:52 1248
原创 linux下用于编码转换的函数
iconv_t iconv_open(const char *tocode, const char *fromcode);size_t iconv(iconv_t cd,char **inbuf,size_t *inbytesleft,char **outbuf,size_t *outbytesleft);int iconv_close(iconv_t cd);以上三个
2013-07-04 12:33:06 453
转载 Linux生成指定大小文件的方法
[转载]原地址:http://rubyer.me/blog/196/# dd if=/dev/zero of=50M.file bs=1M count=50在当前目录下生成一个50M的文件————————————分隔线——————————————–如果你想了解更多,请看下面的扩展阅读虚拟块设备文件更通用的名称是硬盘镜像文件(Hard Disk Image
2013-06-21 16:24:53 1227
原创 centos5.8安装postgresql以及python模块psycopg2
安装postgresql比较简单,按照postgresql官网上的说明,yum install postgresql91-server postgresql91-contrib yum install postgresql运行这三个命令就可以安装成功,然后通过 service postgresql start 启动服务。安装psycopg2模块比较麻烦,下载源码包后编译提示需要pg_con
2013-06-19 23:12:35 1324
转载 [转]TCP慢启动
网上看到的解释TCP慢启动的,觉得不错就转了。为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制。最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由“慢启动(Slow start)”和“拥塞避免(Congestion avoidance)”组成,后来TCP Reno版本中又针对性的加入了“快速重传(Fast retransmit)”、“快速恢复(Fast Recov
2013-03-27 15:07:57 502
原创 关于struct和class的区别
struct和class的区别在C++中的区别比较小,两者都可以用来定义类,进行方法和运算符重载,他们的区别在于默认的访问级别,struct在没有声明访问修饰符的时候默认是public,而class为private代码:struct S{ S() : m_a(0){} int m_a;};class C{ C() : m_a(0){} int m
2013-03-27 14:53:40 470
转载 [转]ubuntu修改系统语言
ubuntu12.10安装的时候装了英文版,系统设置里的语言支持显示已经安装简体中文,但是在可选择的语言里面汉语选项是灰色的,在网上找到解决方法,来自ubuntu论坛。修改 /etc/default/locale LANG="zh_CN.UTF-8" LANGUAGE="zh_CN:zh:en_US:en" 修改 etc/environment PATH="/u
2013-03-16 22:35:29 808
原创 C++ STL中判断list为空,size()==0和empty()有什么区别
关于两个的区别,首先size()==0为bool表达式,empty()为函数调用,这一点很明显。查看源代码, bool empty() const { return _M_node->_M_next == _M_node; } size_type size() const { size_type __result = 0; distance(begin(), end(),
2013-03-05 16:54:24 2980
原创 查找数组中第K大的值
今天面试遇到了一个问题,面试官问我:“如何在一个给定的无序数组找到第K大的值”。我想了下肯定不能先排序,再查找,那样效率太低,于是乎就想有没有更好的办法。首先就想到了线性算法,能不能在几趟扫描把这个数找到,结果死活没弄出来,还弄了一个错误的方案被面试官质疑了。回来之后查了下原来可以用快速排序的分割步骤来找,效率也比较高,顿时就感觉自己好煞笔。不过还是因为自己对这些排序查找算法理解不够深刻,
2013-02-28 17:07:55 488
原创 局部变量什么时候分配内存
以前在学习的时候看到过一句话,“ 栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放”就一直以为局部变量内存是由编译器分配,也没多想怎么分配。今天被别人问到 “程序执行的过程中编译器怎么还能参与内存分配” 一下就傻眼了,网上查了下,这句话的意思应该是 “编译器在编译的过程中,
2013-02-27 16:03:34 4989 5
转载 安装ubuntuu遇到的显卡驱动问题
最近安装ubuntu12.04,完了发现没法上网0ifconfig -a 查看只有 lo 和 wlan0,没有eth*,网上查了下可能是网卡驱动的问题。 用lspci |grep net 看了下网卡的信息,再到网上搜了下用 http://www.linuxwind.org/html/install-atheros-ar8161-ethernet-driver-on-ubunt
2013-01-24 22:07:41 356
原创 __attribute__ ((__packed__))编译选项
最近在不同的环境编译epoll程序的时候总是有问题,看了下系统epoll.h,原来是两个不同的版本。其中有些宏定义老版的没有,而在老版中定义struct epoll_event{ uint32_t events; /* Epoll events */ epoll_data_t data; /* User data variable */} __attribute__ (
2013-01-02 10:59:08 664
原创 C++调用的LUA脚本中加载其他库的问题
最近使用lua扩展c++程序,需要在调用的脚本中require另一个库,static const luaL_reg lualibs[] ={{"package", luaopen_package},LUA_EXTRALIBS{NULL, NULL}}; const luaL_reg* lib = lualibs;for (; lib->func; lib++)
2012-11-11 23:53:53 569
原创 关于函数指针的一点总结
以前在使用函数指针的时候,没有弄明白函数名和函数指针类型的区别,今天做了个小测试,总结一下测试结果。int32_t mytest(int32_t id){printf("my test\n");return 0;}typedef int32_t (*P_FUN)(int32_t);P_FUN t /*0x00499e0c*/ = mytest /*0x00519
2012-10-31 11:50:07 260
转载 [转]ubuntu下编译lua
在windows下编译lua,需要安装mingw,然后运行make mingw在Linux下直接运行make linux,在ubuntu下如果提示luaconf.h:275: fatal error: readline/readline.h: 没有那个文件或目录则需要安装readline库sudo apt-get install libreadline5-dev
2012-10-26 13:22:56 403
原创 使用vld(visual leak detector)进行内存泄露调试
最近写了个程序,需要进行内存泄露调试,用到了vld工具,记一下方法防止以后要用到后忘记。1.安装vld,下载http://vld.codeplex.com/好安装2.添加vs2008环境,tool->options->project and solution->vc++ directories,在show directories for下拉框里面,添加安装目录下的include 目录和
2012-10-23 14:52:04 628
原创 UnicodeDecodeError at / 'utf8' codec can't decode bytes
在用Django的时候,写了个静态网页,访问时出现 UnicodeDecodeError at / 'utf8' codec can't decode bytes错误,Google了下原来是编码问题,我用的vim默认的编码是ascii,将文件编码改为utf8重新保存后问题解决。
2012-05-24 21:08:09 774
原创 文本转xls的小技巧
----------做一个将数据导出为excel文件的程序时偶然间网上看到的文本文件也可以变成Excel电子表格。奥秘在于(你可以在windows下打开记事本来做这个实验)在每行的各项数据之间加入tab键,在行与行之间加入换行键,然后保存的时候后缀名为xls即可。
2011-11-18 23:16:54 447
原创 c++指针访问小结
c++指针在类族中如何访问类成员。问题描述:指针进行转换时,指针如何访问类普通成员和虚函数成员。class A;class B: class A;B *pb;A *pa = (A*)pb;pa->f();指针访问首先根据指针的声明类型确定访问的范围,比
2011-09-30 21:41:58 320
转载 堆和栈的区别
1.1内存分配方面:堆:一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。栈:由编译器(Compiler)自动分配释放,存放函数的
2011-09-26 22:55:17 301
转载 【转】c语言中的字符数组与字符串
【转】c语言中的字符数组与字符串1、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};即把10个字符分别赋给
2011-09-26 22:54:24 998
转载 c++重载箭头操作符
c++重载箭头操作符2011-09-26 15:56箭头操作符(->)的通常用法是,使用一个类对象的指针来调用该指针所指对象的成员。左操作数为对象指针,右操作数为该对象的成员。定义重载箭头操作符之后看起来就有点特别,可以用类对象的指针来调用,也可以
2011-09-26 22:52:12 555 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人