随笔分类 -  C/C++

存放一些学习C/C++过程中的感悟
摘要:代码一:itTmp = mapInfo.find("NodeNum"); if (itTmp != mapInfo.end()) { int nMaxNodes = StrToInt(itTmp->second); map > ... 阅读全文
posted @ 2015-03-16 18:41 冷冰若水 阅读(204) 评论(0) 推荐(0)
摘要:一、引言遇到一个问题:使用加密库对数据进行加密,得到密文,使用string进行保存并传输,然后可以正确解密出来,但是使用string.c_str()进行参数传递则无法正确解密出明文。原因是:密文中有个字节是0,导致传参数时char数组被截断,但是使用string为什么不会截断呢,string类的实现... 阅读全文
posted @ 2015-03-16 18:37 冷冰若水 阅读(691) 评论(0) 推荐(0)
摘要:前面已经有一篇介绍使用Crypto++库实现的加密的文章了,但是代码中考虑的不完全,所以就重新发了个二C++封装:#include "zyaes.h"#include #include using namespace CryptoPP;CZYAes::CZYAes(){ byte byteKe... 阅读全文
posted @ 2015-03-13 14:42 冷冰若水 阅读(1193) 评论(0) 推荐(0)
摘要:转自:深入剖析 linux GCC 4.4 的 STL string本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Write技术。平台:x86_64-redhat-linuxgcc version 4.4.6 2011073... 阅读全文
posted @ 2015-03-10 14:40 冷冰若水 阅读(966) 评论(0) 推荐(0)
摘要:转自:pthread_once()函数详解pthread_once()函数详解在多线程环境中,有些事仅需要执行一次。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库时,就不能在main里面初始化了,你可以用静态初始化,但使用一次初始化(pthread_once)会比较容易... 阅读全文
posted @ 2015-03-10 14:07 冷冰若水 阅读(22534) 评论(0) 推荐(2)
摘要:转自:pthread_key_t和pthread_key_create()详解pthread_key_t和pthread_key_create()详解下面说一下线程中特有的线程存储, Thread Specific Data 。线程存储有什么用了?他是什么意思了?大家都知道,在多线程程序中,所有线程... 阅读全文
posted @ 2015-03-10 14:06 冷冰若水 阅读(1558) 评论(0) 推荐(1)
摘要:在代码的时候,往往会出现代码太长的情况,此时可以使用\来换行,但是在实际中,如果再字符串中使用\换行的话,会在字符串中增加新的字符。使用\之后的下一行如果靠左边开始则不会出现特殊符号。测试结果: 阅读全文
posted @ 2015-03-04 11:09 冷冰若水 阅读(537) 评论(0) 推荐(0)
摘要:一、单例模式单例模式就是保证在一个系统中最多只存在该类的一个对象,这在数据库连接中的非常实用。单例按对象生成的时间点的不同模式分为两种:懒汉单例模式、恶汉单例模式二、两种单例模式懒汉单例模式:#ifndef __SINGLE_TON_H__#define __SINGLE_TON_H__class ... 阅读全文
posted @ 2015-02-28 17:05 冷冰若水 阅读(306) 评论(0) 推荐(0)
摘要:转自:http://www.techug.com/make代码变成可执行文件,叫做编译(compile);先编译这个,还是先编译那个(即编译的安排),叫做构建(build)。Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。但是实际上 ,任何只要某个文件有变化,就要重新构建的项目,... 阅读全文
posted @ 2015-02-26 09:37 冷冰若水 阅读(464) 评论(0) 推荐(0)
摘要:13.1:引言守护进程也称精灵进程(daemon)是生存期较长的一种进程。它们常常在系统自举时启动,尽在系统关闭时才终止。因为它们没有控制终端,所以说它们是在后台运行的。Unixi有很多守护进程,它们执行日常事务活动。13.2:守护进程的特征查看守护进程:ps -axj注意:大多数守护进程都以超级用... 阅读全文
posted @ 2015-02-26 09:37 冷冰若水 阅读(297) 评论(0) 推荐(0)
摘要:一、引言在上一篇中,需要获取文件的大小,但是获取的文件大小与从文件中读取的数据大小总是对不上(10行数据,文件大小是129,但是读取数据是119),因此,实现的服务器总是出现这个错误:net::ERR_CONTENT_LENGTH_MISMATCH二、原因造成这个错误的原因是,获取文件大小时,是使用... 阅读全文
posted @ 2015-02-11 00:35 冷冰若水 阅读(1655) 评论(0) 推荐(0)
摘要:一、引言自己想要实现一个简单的web服务器,遇到一个问题是需要获取发送给客户端的文件大小,即:Content-Length参数。二、方法方法一:long GetFileLength(string strPath){ long lSize = 0; ifstream fin(strPath... 阅读全文
posted @ 2015-02-11 00:23 冷冰若水 阅读(2564) 评论(0) 推荐(0)
摘要:代码:http://www.oschina.net/code/snippet_991746_45911 阅读全文
posted @ 2015-02-09 23:57 冷冰若水 阅读(191) 评论(0) 推荐(0)
摘要:编译静态库时出现这样的提示错误错误原因:参考这个博文:http://blog.csdn.net/liangls1982/article/details/6297651以前经常遇到这个警告信息,因为运行并没有什么问题,所以也没深究。但是耿耿于怀那个“ 0 个错误,0 个警告”的成功提示,在网上搜了一下... 阅读全文
posted @ 2015-02-09 12:52 冷冰若水 阅读(14110) 评论(0) 推荐(1)
摘要:官网:http://valgrind.org/info/about.html百科介绍:http://baike.baidu.com/link?url=ZdXzff0omzoPpE_yZUlNW9lJxygf5aeJIOp-zjfo9F3wUy3wCAGdXxa3ulOOv2ScfOfa_EVlH5H... 阅读全文
posted @ 2015-01-23 09:31 冷冰若水 阅读(235) 评论(0) 推荐(0)
摘要:一、引言一直听别人说linux下有个男人很厉害,遇到不会的不懂的都可以问他,自己也会几个man命令,但是一直不知道到底man命令是怎么用的,比如查询不同类的帮助该在man后跟数字几,man后的数字有什么具体的意思,于是查下资料搞清楚它,记录以便查阅,学习二、简介代號 代表內容1 使用者在shell中... 阅读全文
posted @ 2015-01-16 18:50 冷冰若水 阅读(203) 评论(0) 推荐(0)
摘要:一、引言在开发过程中,经常会碰到这样的情况,在往指定目录下拷贝文件时,需要考虑到磁盘空间的大小是否足够来决定什么时候暂停自己的程序二、用的函数int statfs(const char *path, struct statfs *buf);参考:http://man7.org/linux/man-p... 阅读全文
posted @ 2015-01-08 09:14 冷冰若水 阅读(770) 评论(0) 推荐(0)
摘要:一、引言 在Linux下开发,肯定少不了与gdb打交道,而gdb的命令又非常多,有些是不常用的但是特殊情况下却是必须的,因此记录在此,以便翻阅 二、基本命令 前面是命令全名,在不混淆的情况下,可以简写为后面的单个字符 list l : 列出源代码run r : 运行程序step s : 单步运行(进 阅读全文
posted @ 2015-01-05 17:14 冷冰若水 阅读(365) 评论(0) 推荐(0)
摘要:一、引言工作中有时候可能会写一些这样的程序,它作为后台进程运行,生命周期比一般的进程要长,它在系统开机时运行,直到被强制关闭或者系统关机时退出。它就是精灵进程或者也叫做守护进程--daemon process二、写精灵进程的步骤1.创建子进程,退出父进程2.改变文件的掩码3.打开日志文件,以便向里面... 阅读全文
posted @ 2015-01-05 16:59 冷冰若水 阅读(1617) 评论(0) 推荐(0)
摘要:在实际生产环境中,不能进行调试,所以程序通常需要编译一个DEBUG版本来辅助我们找出问题所在,编译这样的DEBUG版本最常用的手段就是在关键处输出我们关心一些变量的值到屏幕。如果输出的简单的变量值,那么直接输出即可,但如果是向量或者队列等容器,那么就没办法直接输出了,而且写循环遍历也很麻烦,可以使用... 阅读全文
posted @ 2015-01-04 11:06 冷冰若水 阅读(709) 评论(0) 推荐(0)