C/C++
文章平均质量分 69
sofia1217
这个家伙很懒,什么都没有留下...
展开
-
C语言产生随机字符串
//产生长度为length的随机字符串 char* genRandomString(int length) { int flag, i; char* string; srand((unsigned) time(NULL )); if ((string = (char*) myMalloc(length)) == NULL ) { myLog("Malloc failed!flag:1转载 2015-08-21 20:26:45 · 3147 阅读 · 0 评论 -
C++智能指针
导读 最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等……。而且在看开源的C++项目时,也能随处看到智能指针的影子。这说明智能指针不仅是面试官爱问的题材,转载 2015-11-08 20:17:01 · 285 阅读 · 0 评论 -
std::string用法总结
string类的构造函数: string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化 string类的字符操作: const char &operator[](int n)const; const char &at(int n)const; char &operator[](int n);转载 2015-11-05 21:35:08 · 393 阅读 · 0 评论 -
Linux C 时间相关
在处理时间时用到了localtime这个函数,将一个UTC时间转为本地时间: #include time_t tmNow = time(NULL); tm *ptmNow = localtime(&tmNow); //从tm结构体中可以取到年月日时分秒等值。 这里localtime返回了一个tm指针,空间是由localtime自己控制的,所以如果转载 2015-10-17 18:50:17 · 628 阅读 · 0 评论 -
Boost库之Program_options
Progaram_options的使用方法 简单来说,就是先定义好各种参数的规则,然后用这些规则去分析输入(包括命令行的输入、文件和环境变量)。 规则的定义首先要建立一个规则分组,然后往这个分组里加入规则。直接用std::cout来输出这个分组的话,会根据加入的各种规则自动生成帮助信息(相当于一般命令后加–help输出的情报)。 简单的例子: namespace po = boo转载 2015-08-12 21:06:29 · 459 阅读 · 0 评论 -
Makefile 使用总结
1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂. Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作. 这个需要大家发挥自己的想象力. 本篇博客是基于转载 2015-08-12 21:51:20 · 356 阅读 · 0 评论 -
signal(SIGPIPE, SIG_IGN)
当服务器close一个连接时,若client端接着发数据。 根据TCP 协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。 根据信号的默认处理规则SIGPIPE信号的默认执行动作是terminate(终止、退出),所以client会退出。 若不想客户端退出可以把SIGPIPE设转载 2015-08-12 21:23:46 · 754 阅读 · 0 评论 -
makefile教材
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,转载 2015-08-12 21:34:31 · 311 阅读 · 0 评论 -
c/c++程序在内存中的分布
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。 2、堆区(heap) — 在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(转载 2015-04-06 12:20:44 · 335 阅读 · 0 评论 -
简单的加密解密算法
本文描述一种项目中采用的简单加密解密算法,通过把多种算法进行组合。特点是同个字符串不同时间加密结果不同,混合了多种加密方式,很难用统计的方式对密文进行破解。 项目中仅是对密码进行加密,规定密码长度不超过16个字符,故以下的算法均是固定长度的。 1)扩展字符串 在加密字符串末加"\0",之后添加随机字符串扩展为32个字节。以系统时间为种子产生随机字符串,确保了同个字符串不同时间转载 2015-08-21 20:27:34 · 527 阅读 · 0 评论 -
glib库异步队列和线程池代码分析
本文章主要讲了两部分内容:一是分析了异步队列的原理和实现,二是分析线程池的原理和实现。 在多线程程序的运行中,如果经常地创建和销毁执行过程相似而所用数据不同的线程,系统的效率,系统资源的利用率将会受到极大的影响。对于这一问题可用类似glib库中的线程池的解决办法。 我 们可以这样想像线程池的处理,当有新的数据要交给线程处理时,主程序/主线程 就从线程池中找到一个未被转载 2015-12-07 11:45:08 · 890 阅读 · 0 评论