C++
文章平均质量分 89
wvtear
这个作者很懒,什么都没留下…
展开
-
编译时产生multiple definition of 错误的解决方法
总结了解决multiple definition of的方法:问题原因:(1) 当多个文件包含同一个头文件时,并且你的.H里面没有加上条件编译#ifndef TEST_H#define TEST_H#endif就会独立的解释,然后生成每个文件生成独立的标示符。在编译器连接时,就会将工程中所有的符号整合在一起,由于,文件中有重名变量,于是就出现了重复定义的错误。原创 2013-03-19 22:22:41 · 5375 阅读 · 0 评论 -
C++程序后台运行代码
int InitDaemon(){ pid_t pid; // 1.转变为后台进程 if ((pid = fork() ) != 0 ) exit( 0); // 2.离开原先的进程组 setsid(); // 3.禁止再次打开控制终端 if ((pid = fork() ) != 0 ) exit( 0); // 4.关闭打开的文件描述符,避免浪费系统资源原创 2016-01-19 14:44:27 · 3376 阅读 · 0 评论 -
关于线程池的“惊群效应”
什么是惊群 举一个很简单的例子,当你往一群鸽子中间扔一块食物,虽然最终只有一个鸽子抢到食物,但所有鸽子都会被惊动来争夺,没有抢到食物的鸽子只好回去继续睡觉, 等待下一块食物到来。这样,每扔一块食物,都会惊动所有的鸽子,即为惊群。对于操作系统来说,多个进程/线程在等待同一资源是,也会产生类似的效果,其结 果就是每当资源可用,所有的进程/线程都来竞争资源,造成的后果:1)系统对用转载 2015-12-30 14:28:49 · 681 阅读 · 0 评论 -
__builtin_expect 解惑
转自:http://my.oschina.net/moooofly/blog/175019最近看 GLib 的代码遇到这个东东,网上搜索一圈,发现很多人都写过这个,自己今天才研究到,汗颜一下,扫盲一个点,留此记录为证! 首先看一篇最官方的讲解: ====== likely() and unlikely() What are they ? In L转载 2015-12-14 17:44:44 · 365 阅读 · 0 评论 -
C++中的前置声明(Forward Declaration)
今天写模块类文件的一个收获是,在定义头文件时,能依赖前置声明的就不要依赖定义,同时在适当的情况下应该用类型的前置声明来减少头文件的导入。例如,在头文件中定义类的一个指针成员时,该指针是工程中另外定义的类型class Account的一种指针Account* m_Account;。那么在该头文件的类声明之前加上前置声明:[cpp] view plaincopy转载 2014-08-09 09:46:43 · 730 阅读 · 0 评论 -
placement new (转)
1. placement new的含义placement new 是重载operator new 的一个标准、全局的版本,它不能够被自定义的版本代替(不像普通版本的operator new 和 operator delete能够被替换)。void *operator new( size_t, void *p ) throw() { return p; }placemen转载 2014-03-21 03:03:17 · 514 阅读 · 0 评论 -
linux下core文件设置(转)
在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。1.core文件的生成开关和大小限制 1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。 2)使用ulimit -c filesize命令,可转载 2014-02-25 11:40:01 · 492 阅读 · 0 评论 -
localtime 和 localtime_r
上程序:#include #include #include #include using namespace std;int main(int argc, char *argv[]){ time_t tNow =time(NULL); time_t tEnd = tNow + 1800; //注意下面两行的区别 struct tm* ptm原创 2013-09-16 13:29:06 · 650 阅读 · 0 评论 -
C++ ofstream和ifstream详细用法
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout 2、析取器(>>)原创 2013-09-11 22:19:16 · 546 阅读 · 0 评论 -
unix环境C编程之日期时间转换
1、理清概念1.1、日历时间: 含义:国际标准时间1970年1月1日00:00:00以来经过的秒数。 数据类型:time_t。实际上是long的别名。1.2、tm结构时间: 含义:结构化存放时间的数据结构,方便查看。ANSI C标准称使用tm结构的这种时间表示为分解时间(broken-down time) 数据类型: struct tm {转载 2013-08-22 15:25:03 · 626 阅读 · 0 评论 -
IP地址格式转换
先来讲一个使用linux接口的将unsigned int型或者unsigned long等类型的数据转化成点分十进制的方法:1.在/usr/include/arpa/inet.h文件中有inet_ntoa()函数的声明:extern char *inet_ntoa(struct in_addr __in) __THROW;__in:是struct in_addr的结构体变量.那么这转载 2013-08-02 21:02:18 · 811 阅读 · 0 评论 -
char *c和char c[]区别
问题引入:在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。程序演示:测试环境Devc++代码运行结果2293628 4199056 abc2293624 2293624 abc2293620 4199056 abc #include using name转载 2013-05-30 13:02:31 · 558 阅读 · 0 评论 -
二叉树的非递归遍历
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。一.前序遍历 前序原创 2013-04-26 15:50:04 · 493 阅读 · 0 评论 -
用 C++ 设计一个不能被继承的类
分析:这是Adobe 公司 2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++ 基本功底外,还能考察反应能力,是一道很好的题目。 在Java 中定义了关键字 final ,被 final 修饰的类不能被继承。但在 C++ 中没有final 这个关键字,要实现这个要求还是需要花费一些精力。 首先想到的是在 C++ 中,子类的构造函数会自动调用父类的构造函数转载 2013-04-24 11:09:20 · 406 阅读 · 0 评论 -
深入分析C++引用
关于引用和指针的区别的文章很多很多,但是总是找不到他们的根本区别,偶然在codeproject上看到这篇文章,觉得讲的挺好的,所以翻译了下,希望对大家有帮助。原文地址: http://www.codeproject.com/KB/cpp/References_in_c__.aspx 引言 我选择写C++中的引用是因为我感觉大多数人误解了引用。而我之所以有这个感受是因为翻译 2013-03-21 14:38:39 · 453 阅读 · 0 评论 -
Linux Epoll介绍和程序实例
原文地址:http://blog.csdn.net/sparkliang/article/details/4770655 1. Epoll 是何方神圣? Epoll 可是当前在 Linux 下开发大规模并发网络程序的热门人选, Epoll 在 Linux2.6 内核中正式引入,和 select 相似,其实都 I/O 多路复用技术而已 ,并没有什么神秘的。 其实在 Li转载 2013-03-19 19:40:54 · 414 阅读 · 0 评论 -
C++拷贝构造函数详解
转载至:http://blog.csdn.net/lwbeyond/article/details/6202256一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一转载 2013-03-19 16:47:04 · 467 阅读 · 0 评论 -
C++11中值得关注的几大变化
声明:本文源自 Danny Kalev 在 2011 年 6 月 21 日发表的《The Biggest Changes in C++11(and Why You Should Care)》一文,几乎所有内容都搬了过来,但不是全文照译,有困惑之处,请参详原文(http://www.softwarequalityconnection.com/2011/06/the-biggest-changes转载 2016-10-09 18:00:17 · 358 阅读 · 0 评论