现在位置: 首页

Linux C/C++内存泄漏检测工具:Valgrind

2019-05-10 21:33 工业·编程  ⁄ 共 3988字 暂无评论
Valgrind 是一款 Linux下(支持 x86、x86_64和ppc32)程序的内存调试工具,它可以对编译后的二进制程序进行内存使用监测(C语言中的malloc和free,以及C++中的new和delete),找出内存泄漏问题。 Valgrind 中包含的 Memcheck 工具可以检查以下的程序错误: 使用未初始化的内存 (Use of uninitialised memory) 使用已经释放了的内存 (Reading/writing memory after it has been free’d) 使用超过malloc分配的内存空间(Reading/writi...
阅读全文

【每日一字】直:大雪压青松 青松挺且直

2019-05-10 16:52 生活·感悟  ⁄ 共 1423字 暂无评论
《苟子・动学》中有这样一句话:“木直中绳,輮以为轮,其曲中规。”意思是木材直得可以符合拉直的墨线,用煣的工艺把它弯曲成车轮,那么木材的弯度就合乎圆的标准了。显然,这里判别“木”是否直的标准是拉直的墨线,然而如果没有拉直的墨钱,古人又是用什么标准来判断一个东西是否端直呢?我们一起从“直”字的字形结构中找到问题的答案。 直,甲骨文字形と,这是一个会意字,下面是一只眼時,上面是一条直线,会意为以目视之,视线之...
阅读全文

linux下c语言内存泄漏总结

2019-05-09 21:12 工业·编程  ⁄ 共 598字 暂无评论
内存泄露问题是c语言很容易出现的问题,小程序可以很容易的发现,但是大程序就比较难发现了。 内存泄露是由于动态分配的内存没有被释放,可以使用valgrind等工具检查出来。 常见导致内存泄露的函数有malloc、calloc,以及间接使用malloc的函数strdup、strndup等。还包括mmap函数。 要避免内存泄漏需要以下函数成对出现: malloc/free calloc/free strdup/free strndup/free mmap/munmap <以后遇到坑,继续添加> 我遇到的...
阅读全文

常见的内存错误及其对策

2019-05-08 21:00 工业·编程  ⁄ 共 873字 暂无评论
发生内存错误是件非常麻烦的事情。编译器不能自动发现这些错误,通常是在程序 运行时才能捕捉到。而这些错误大多没有明显的症状,时隐时现,增加了改错的难度。 有时用户怒气冲冲地把你找来,程序却没有发生任何问题,你一走,错误又发作了。 常见的内存错误及其对策如下: 内存分配未成功,却使用了它。 编程新手常犯这种错误,因为他们没有意识到内存分配会不成功。常用解决办法是, 在使用内存之前检查指针是否为 NULL。如...
阅读全文

【每日一字】曲:今日听君歌一曲

2019-05-08 16:50 生活·感悟  ⁄ 共 1704字 暂无评论
古代风俗,每年春季要在水边举行消灾祈福的祭礼,被称为“祓模”f白xi)。魏晋之前在三月上已日这一天举行,魏晋之后固定为三月三日举行。这一天,人们在举行被楔仪式后,就在水边宴饮,将殇这种酒具放入水中,顺水漂流,到自己面前,取而饮之,彼此相乐,这就是“曲水流”。王羲之的《兰亭集序》就是在一次曲水流扁的活动之后所作。“曲水”,取水流弯弯曲曲之意。魏源有诗:“人间曲水殇,竟忘仙鬼宅。”可见曲水流之乐。 说文解字》是...
阅读全文

Redis和消息中间件

2019-05-07 22:19 工业·编程  ⁄ 共 2165字 暂无评论
消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。 我们来看几个关键点: 消息 消息中间件定义了一个协议(模型),基于该协议可以传递消息 分布式 消息中间件的引入是为了解决分布式系统的问题,对于简单的单应用系统用不着 举例来说,一个常见的最简单的UGC应用,至少包括后端、APP、审核后台、...
阅读全文

常见的消息队列中间件介绍

2019-05-06 22:04 工业·编程  ⁄ 共 3010字 暂无评论
为什么使用消息队列 先说一下消息队列常见的使用场景吧,其实场景有很多,但是比较核心的有 3 个:解耦、异步、削峰。 解耦 看这么个场景。A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩溃...... 在这个场景中,A 系统跟其它各种乱七八糟的系统严重耦合,A 系统产生一条比较关键的数据,很多系统都需要 A 系统将这个数据发送过来。A 系统要...
阅读全文

【每日一字】通:心有灵犀一点通

2019-05-06 16:49 生活·感悟  ⁄ 共 1718字 暂无评论
“痛则不通,通则不痛”是向中医俗语,源自中医经典《黄帝内经・素问·举痛论》,意思是说如果气血畅通就不会疼痛,如果疼痛就说明气血不通。这种“通”的思想在《周易》等早期经典中即可觅得影踪:《周易》六十四卦中有泰卦和否卦,泰卦之所以吉就是因为“天地交而万物通也”,否卦之所以凶就是因为“天地不交而万物不通也”。所以《周易》倡导“穷则变,变则通,通则久。”古人为什么如此强调“通”的作用? 通的甲骨文字形为,行为是(thmb)...
阅读全文

张文木:新时代的中美变局与世界前途

2019-05-06 05:56 战略·谋略  ⁄ 共 13898字 暂无评论
“这是最好的时代,也是最坏的时代。”英国文学家狄更斯这样描述工业革命发生后的时代。今天的世界似乎又回到了从黑暗向光明、从旧时代向新时代转变的临界点。 一 新时代的中美矛盾:本质和趋势 中国共产党第十九次全国代表大会之后,中国的政治经济发展进入了新时代,中国提出新时代的依据是国内工作的主要矛盾和主要任务发生了转变。但是同时不要忘记,美国也进入了“新时代”。不同的只是一个是向着光明和进步的新时代,一个是向...
阅读全文

用lwip发送大量数据时,遇到的问题解答记录

2019-05-05 06:52 工业·编程  ⁄ 共 2126字 暂无评论
1、概述: lwip是轻量型的TCP/IP实现,只需10几KB的RAM和40几KB的ROM就能够跑起来,适合应用于嵌入式设备的网络通信。有牛人Adam Dunkels发明,提供给用户上那种接口 RAW TCP/IP、Squential API, BSD API(也就是常说的socket编程),前者编程稍微复杂点,协议和应用程序在一个进程里面,但是效率高。中者首先要操作系统的支持,但是一旦实现了操作系统模拟层的实现,编程妥妥的。后者是为了符合人们使用socket编程的习惯而模...
阅读全文