随笔分类 -  C/C++

摘要:OpenMPTBB:Threading Building BlocksFastFlow 阅读全文
posted @ 2011-04-27 20:43 fre2technic 阅读(264) 评论(0) 推荐(0) 编辑
摘要:linux上用C/C++写程序时,很容易碰到段错误的提示,此时程序被自动终止。这个问题是由于非法访问内存引起的,一般的原因都是因为程序中的指针解引用出现了错误。出现段错误是,linux一般会生成一个core dump文件,如果没有生成,可能是因为分配给core dump文件的控件为0,可以用ulimit -c命令查看,如果为0,core dump文件不会生成,可以通过执行ulimit -c [数字],来指定core dump文件可以使用的空间,我一般执行ulimit -c unlimited,把空间设置为无限。core dump文件默认生成在执行程序的目录中,生成后,执行gdb [可执行文件名 阅读全文
posted @ 2011-04-25 01:43 fre2technic 阅读(315) 评论(0) 推荐(0) 编辑
摘要:说到日志工具,下意识就想到log4系列,这个日志库始于log4j,后来被移植成各种流行语言的库,各种log4xxxx满天飞。最近在Linux下写C++程序,需要一个日志工具,很自然想到了要找log4的c++移植。放狗搜了一下,居然有三个,Log4cpp,Log4cxx,Log4cplus。到各自的官网逛了一下,发现前两个很久都没有更新了,看来只能选择Log4cplus了。 阅读全文
posted @ 2011-04-19 09:58 fre2technic 阅读(584) 评论(0) 推荐(0) 编辑
摘要:我们定义如下类: //A.hclassA{private:staticconstintm=5;staticintn;staticvectorbuf;};其中包含三个私有的静态类成员,C++规定const静态类成员可以直接初始化,其他非const的静态类成员需要在类声明以外初始化,我们一般选择在类的实现文件中初始化,初始化的方式是书写一遍类型的定义://A.cppintA::n; //不指定任何初始值,系统自动初始化为0vectorA::buf; //调用vector的默认构造函数来初始化 //注意:调用默认构造函数时,不要使用括号,否则编译器将把A... 阅读全文
posted @ 2011-03-25 09:30 fre2technic 阅读(36986) 评论(2) 推荐(6) 编辑
摘要:这两个头文件都在linux的/usr/include目录下面,后者比前者多了一个s,一般使用以string.h(没有s)的为主,那strings.h(有s)什么时候使用呢?打开这个头文件,可以看见区别如下:/* We don't need and should not read this file if <string.h> was already read. The one exception being that if __USE_BSD isn't defined, then these aren't defined in string.h, so w 阅读全文
posted @ 2011-03-15 18:30 fre2technic 阅读(2345) 评论(0) 推荐(0) 编辑
摘要:pthread_create()是linux上,创建新线程的调用,按照info给出的例子使用,编译时,会出现这个错误提示。这实际是一个链接错误。原因是,该函数实现在libpthread.so或者libpthread_nonshare.a中(在64 bitOS上,这两个库在/usr/lib64目录中),但是这两个库都不是linux的默认库,编译时,需要加上-lpthread参数。例如: g++ xxx.c -o xxx -lpthread如果使用了类似eclipse之类的IDE工具,可以在项目属性中设置。 阅读全文
posted @ 2011-03-04 15:47 fre2technic 阅读(345) 评论(0) 推荐(0) 编辑