自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

认知 行动 坚持

涛哥不知何许人也,亦不详其姓字。闲静少言,不慕荣利。好读书,求甚解。常著文章自娱,颇示己志。忘怀得失,有始有终...

  • 博客(74)
  • 资源 (19)
  • 收藏
  • 关注

原创 编译warning:call will abort at runtime

最近编译代码, 眼睛扫了一下, 无意中看到一个刺眼的warning:  call will abort at runtime        回看代码, 果然有误, 虽然通过编译, 但运行时有出错危险。        在大型代码编译中, 几乎不可能清楚所有warning, 但至少要保证:        1. 编译出库        2.  搜索abort, 无对应信息

2016-03-30 23:48:52 7519

原创 这是得了core dump综合征么?

以前觉得core dump有些难搞, 现在解决也就那么回事。         最近写代码异常, 在该打印日志的地方嘎然而止, 第一想到的就是程序是不是又core了。 看了一下, 没core, 进程号没有变, 所以程序并没有core, 好吧。         抓个包, 包异常, 抓个日志, 日志嘎然而已, 尼玛, 来review一下代码吧: oh, my god, 是个死循环。     

2016-03-30 23:23:29 7226

原创 makefile编译时候出现:commands commence before first target

我们知道, 在C/C++语言中, 可以用\来换行, 此时要注意, 在一行的最后面加上\,  而这个\后面不能再有任何字符, 哪怕是空格, 也不允许, 否则出错。        对于makefile, 也有类似的原则, 最近写makefile,  一不小心, 在\后多了个空格, 结果编译出现:commands commence before first target        要小心啊。

2016-03-30 23:14:35 43689 8

原创 strtok_r并不比strtok好多少

前面批判了strtok, 本文来说说strtok_r, 后者在linux中才有, 虽然可冲入且线程安全, 但也不是什么好东西, 因为会改变原串, 如下:#include #include #include #include using namespace std;int Str2Vector(const string& str, vector &v, const char *p)

2016-03-28 23:54:27 8348 1

原创 C/C++中最坑爷爷的垃圾函数strtok------浪费我1个小时

某次, 我调用了别人写的这样的一个函数:int Str2Vector(const string& str, vector &v, const char *p);       然后,继续把str在系统中传递, 奇怪的是, 传着传着, str的值就变化了。 当时的第一分析是: 调用Str2Vector函数, str绝对不会变化, 所以一定是系统在后续传递str时出了问题。       然而,

2016-03-28 23:29:24 11276 1

原创 教你用恶心的strtok函数来恶意修改const string &str 中的str

大概在两年前, 我踩了一次strtok的坑, 并在博文中做了记录, 永远不要用strtok,  最近再次遇到此坑, 先不多说。 我来教你用恶心的strtok函数来恶意修改const string &str 中的str:#include #include #include #include using namespace std;int Str2Vector(const string

2016-03-28 23:12:17 8208 1

原创 makefile文件没写好导致程序core dump的定位经历与反思------又是“协议“不一致产生的core dump

最近碰到这样一个问题: 原本好好的程序, 经我加一些代码后, 程序就core dump了。 于是, 我回退代码, 结果就没有core dump了, 我仔细审视了一下自己写的每行代码, 居然没有发现任何疑点, 怪哉。 我不太想用二分查找的方法来定位, 粗暴低效, 所以打算依赖于core文件来分析, 万幸的是, 抓到了core文件, 可是用gdb xxx cor

2016-03-27 00:11:57 9475

原创 协议文件不一致导致的coredump问题

客户端和服务端之间经常使用类似google protocol buffer这样的工具做应用层协议, 在之前的博文中, 我们说过协议不一致导致的解包失败问题。 本文说手协议不一致产生的core dump问题。       去年, 在去澳门玩之前, 遇到了一个core dump问题, 搞了一些时间, 也没有找到问题的原因。 后来请教别人, 说要怎样怎样解决, 还挺复杂的。 后来继续请教人, 才知道

2016-03-26 23:29:53 7367 1

原创 两次碰到协议文件不一致导致的解包失败

在网络交互中, 客户端和服务端之间进行发包时, 一般会约定好协议, 比如常见的google protocol buffer. (gpb), 实际上就是一个应用层的协议, 负责序列化打包、反序列化解包。 今年情人节前夕, 做了一个需求, 用的是类似gpb这种序列化、反序列化协议, 结果, 我在解析的时候出错, 当时真是百思不得其解答, 后来请教大牛, 才发现是协议文件没有更新所致, 踩到了坑, 吸取了教训啊。 其实, 协议文件不一致导致的解包失败, 是很自然的事。

2016-03-26 23:02:23 9323

原创 makefile指定头文件和库出错的那点破事

某模块提供了test.h头文件和libtest.a库, 供外部代码调用: 1. 如果在代码中包含了某头文件test.h, 但在makefle中没有指定头文件路径/或者头文件根本不存在, 会出现编译错误, 会提示缺少test.h. 2. 如果包含了test.h头文件,且指定了头文件路径, 且指定libtest.a库, 但实际此库并不存在(比如没有提前编译出来), 会出现编译错误, 提示缺少 cannot find -ltest 3.如果包含了头文件,且指定了头文件路径,

2016-03-26 10:38:06 15099

原创 GNU makefile英文官方介绍------干货

话不多说, 奉上干货:http://www.gnu.org/software/make/manual/make.html

2016-03-26 10:12:23 8057 3

原创 缺using namespace test1; using namespace test1::test2;导致的编译错误

最近遇到一个编译问题, 耗费了点时间才找到原因, 现在记录一下, 下次很快就能搞定类似问题了。      某基础功能库提供了test.h文件和libtest.a文件供外部调用, 在业务层比较成熟的A模块中, 需要用到test.h中的一个类Student,  在A模块中,包含了test.h, 然后指定了libtest.a,  编译、调用OK.      而我要搭建一个新的B模块, 也要用到t

2016-03-26 10:03:56 7204 1

原创 浅聊流水系统

这里的流水, 是不是流口水, 而是类似于流水账之类的记录。 电话费有电话费的流水账单, 银行有银行的流水账单。 之前做嵌入式开发, 非常依赖于本地日志定位问题。 当嵌入式设备发到用户家里后, 需要将异常信息上报网管系统。 现在做互联网后台开发, 监控系统尤为重要, 其中一项就是流水系统, 记录用户关键的操作。 便于问题查询和定位。 说白了, 就是在代码中, 朝流水server写记录数据, 记录出入信息。 最近定位好几个问题, 全依赖于这个, 爽爽哒。

2016-03-26 09:33:48 7665 2

原创 解决问题, 才是首要目的

就在刚才, 网络突然异常了, 于是我想抓包看看, 修复一下, 结果不管用。 手机能连接wifi, 但pc连接不上, 搞了20分钟, 网络还是没法恢复。 好吧, 那就用万能的重启方法, 搞定了。       某次, 某台机器出现了必然出现了内存泄漏, 大家定位很长时间都木有找到具体原因, 最后的解决方式是: 每隔3小时自动重启服务(经评估, 重启对用户没有影响)。       某次, 某重要

2016-03-26 08:57:10 7353 1

原创 函数该传递什么参数

最近, 一位qq好友问, 函数该传递什么参数, 怎样设计? 这个问题, 其实是比较简单的, 我个人比较喜欢的做法是: int fun(xxx input, xxx control, xxx output);

2016-03-26 08:49:07 7202 1

原创 那一夜, 我懂了视频帧

之前学过一段时间的视频, H.264吧, 开始一直不太理解视频帧的概念, 某日, 在寝室观看了“某老师”的“行为艺术”视频, 卡得不得了, 心急如焚, 视频播放出来是一幅一幅的图像, 从此, 懂了视频帧的概念。        粗略来说, 视频帧, 就是一幅图像。

2016-03-26 08:00:49 8158 6

原创 snprintf类型不匹配导致的core dump问题分析与定位

对于core dump, 我们应该很熟悉了。之前说过,printf打印日志不规范, 会导致core dump问题, 今天我们来说说类似的问题. 最近, 系统出现异常, 在改打日志的地方没有打日志, 程序戛然而止。 最古怪的是, 虽然开了ulimit -c unlimited, 但也没有发现core文件产生。 当时, 我自己加了为数不多的几行代码, 就出现了异常, 因此, 集中精力排

2016-03-26 07:53:40 10899 3

原创 垃圾的clear函数------stringstream类型对象的清空操作之坑(不是用clear)

平时经常用C++中的stringstream类型, 非常方便, 但最近踩了一个大坑浪费较长时间才定位到时清空stringstream对象时出现了问题, 上网搜索了一下, 原来, 很多人都踩过此坑。 我们先来看看demo代码:#include #include #include using namespace std;int main(){ stringstream ss; i

2016-03-25 00:26:15 9667 2

原创 全局变量未清空, 定位耗费一小时

都说全局变量是万恶之源, 可读性差, 而且还容易产生错误, 此话不假。       最近, 本来需要扩展函数参数,但当时为了图方便, 直接用了全局变量, 但每次结束后又没有清空, 结果出现异常:       1. 在测试环境下, 表现没有异常。 序列化打包OK.       2. 在灰度外网的时候, 开始表现也没有异常, 于是全量外网。 过一会发现非关键功能出现异常。

2016-03-24 23:52:33 8070 1

原创 细节好的人格局一般比较差

细节好的人格局一般比较差, 此话不假, 发人深省。

2016-03-21 22:52:33 8575 3

原创 C++ vector的排序------对于结构体vector, 需要自己实现比较

在很多面试中, 都会问到: 结构体作为map的key, 需要注意什么? 这个问题, 我在http://blog.csdn.net/stpeace/article/details/46553525中已经深入讨论过, 所以不再赘述。 本文来说说vector的排序, 最近刚好要涉及到, 所以来写个代码demo 由于结构体没有比较大小这一说法, 所以要实现结构体vector的排序, 必须自定义比较:

2016-03-20 23:42:13 14994 4

原创 毕业后是选择大公司还是小公司

最近有网友问我, 毕业后是选择大公司还是小公司。 我觉得这又是个扯淡的问题。         在校期间, 我在公司A实习, 正式员工小于20人。 后来又在B公司实习过, 正式员工小于10人。         毕业后, 我在公司C工作, 正式员工大于150000人。 后来又在D公司工作, 正式员工大于20000人。         本想就这个问题好好聊聊, 但发现常高伟先生早已写过, 且

2016-03-20 22:03:21 8574 5

原创 《华为研发》 张利华

最近整理书籍, 把这张利华的《华为研发》结了个尾。 文章没啥深度可言。 亲自感触太多, 不多说了。 该忘的, 就忘吧。

2016-03-20 21:20:13 9481 2

转载 刘宗泽:风雨江湖路

转载地址:《棋艺》                                                    刘宗泽的寂寞                                                                  在异乡的一家小酒馆里,象棋高手刘宗泽要了一碟醋拌猪耳朵,二两老白干和一碗过了水的炸酱面。饭菜虽然简单,可他吃得

2016-03-20 20:24:49 8621 1

转载 Linux 压缩解压缩命令大全(我最常用tar)

转载地址:http://www.cnblogs.com/xd502djj/archive/2010/11/19/1881559.html     .tar  解包:tar zxvf FileName.tar  打包:tar czvf FileName.tar DirName  ---------------------------------------------

2016-03-19 23:05:28 20012 1

转载 腾讯产品总监:我工作十年,内心仍无比恐慌

转载地址:http://www.chinaz.com/manage/2015/1127/476037.shtml本文是曹菲在馒头商学院发表的演讲记录,曹菲是腾讯产品研发中心总监 (腾讯,中国最大的网络公司,QQ 和微信都是它的)。本文有相当程度的专业性,行外人不一定能够咀嚼通透,但大略浏览可窥见中国互联网精英的思路,以及那个领域中的专业程度和分工流程。在中国互联

2016-03-19 22:50:11 10542 8

转载 确定性这剂毒药,你喝过没?

转自:http://blog.csdn.net/foruok/article/details/50762970        目录(?)[+] 假如你现在想换工作,你会怎么选择呢?薪水够多,工作够轻松,不加班,目标职位需要的技能你又刚好会,离家近,奖金多?满足这样要求的单位就可以去了,去了就会如你所愿一切都很美好?假如你是个程序员,不想做

2016-03-19 09:39:12 7407 1

原创 大白话解释互联网后台为什么常用异步server?

最近写了一个异步server, 所以来聊聊异步server: 互联网的后台开发就是一堆的server, 我们先来看看同步server的情况: 如上图, A是用户的请求, B是后台的某一个Server, C是数据库存储。 先来说一下同步server. A在第0s发起请求, B收到请求后去读数据库C,

2016-03-19 09:11:12 9064 3

原创 再来聊聊linux中的nm命令(nm与ldd命令实战)

在之前的博文中, 我们介绍了nm命令, 故无需过多赘述。在上一篇博文中, 我们介绍了ldd -r xxx.so的使用方法, ldd -r xxx.so主要是用来查询undefined symbol的项, 其实, nm命令同样可以做到。       在使用nm命令时, 会列出各种符号, 其中的U表示undefined symbol, 因此, 我们可以只用nm -u xxx.so来查看undefi

2016-03-19 08:16:29 11267

原创 ldd -r xxx.so命令的重要作用------见招拆招地解决缺库问题(undefined symbol)

在之前的博文中, 我们介绍了ldd这个重要的命令, 在本文中, 继续来强调一下, 顺便说说ldd的-r参数。       最近编译了一个动态库xxx.so, 但一加载的时候, 便报错, 提示信息是: dlopen ......,  undefined symbol ....,   于是不断地修改, 不断地重新加载, 花了不少时间。  其实, 完全不用等到加载的时候去发现这个问题, 编译出xxx

2016-03-18 23:23:23 23242 1

原创 网络传输的本质(buffer传输)决定了序列化和反序列化的重要应用

序列化: 把对象转化为一段buffer, obj---->buf 反序列化:把buffer转化为一个对象 buf--->obj 程序猿喜欢obj, 网络传输喜欢buf. 知名的序列化、反序列化的工具是google protocol buffer, 在之前的文章中, 我们已经接触过了。 当然, 很多公司也有自己的序列化和反序列化工具。 我们知道, 网络传输的本质就是buffer的传输, 所以, 在网络传输中, 序列化和反序列化是非常常见的。

2016-03-18 23:08:08 10807

原创 AlphaGo 4:1 李世石

AlphaGo 4:1 李世石, 有幸见证。        阿尔法狗不错啊。        李世石, 帅气, 牛逼。

2016-03-18 22:52:27 7376

原创 txt中的内容复制到excel中无法对齐, 该怎么处理?

今天, 一同学反馈, 导出的文件是txt格式, 其中是表格类型的数据, 在导入到excel中后, 无法在对应的框中对齐, 他还以为是txt没有对齐。 有点苦恼。       我在群里看到这个问题, 回忆起excel的导入导出都是以tab来做分隔符的, 所以就想到现在txt中把空格转为tab. 试了一下, 果然靠谱。       至于txt中空格如何转tab, 这个就很俗套了-------正

2016-03-18 22:51:27 15645

原创 svn diff | grep work看修改的文件

用svn diff可以看所有修改的详细信息,  但若要看svn管理目录下改动的文件, 可以直接过滤working/work即可。         一直这么用, 挺顺手:         svn diff | grep work         或者:         svn diff | grep working

2016-03-18 22:45:05 7922 1

原创 修改svn中的文件名

今天想修改svn中的文件名, 感觉这种基本的功能应该会提供, 试了一下, 靠谱:       对于已经受svn源代码管理的文件或者文件夹,若想修改名字,如何搞起:       1.选中文件或者文件夹---右键---TortoiseSVN---改名。       2.svn 提交。       值得注意: 直接修改文件名是不可以的。

2016-03-18 22:39:54 22240 1

原创 php中的join函数

刚学写PHP的时候, 对很多现成的函数不熟悉, 导致还是在用C/C++的思路解决问题。 比如, 我曾经自己去吧join函数实现的功能给写了一遍。        下面, 我们来看看join函数的作用吧, 以后再也不要犯傻了:<?php $arr = array("hello", "world"); $str = join("|", $arr); echo $str;

2016-03-15 23:38:21 9259

转载 年薪千万的华为副总裁离职工作感悟------徐家俊

转自: 网上到处是。上周,我正式提交了离职报告,准备给自己的职业生涯一个很大的转折,这是我长时间的思考最后所做的决定。但真的提出离职后,回想在公司的十年,还是百感交集。转眼工作十年了,在华为的十年,正是华为从名不出专业圈子到现在成为路人皆知的大公司,高速发展的十年,见证了公司多年的奋斗历程。也投身其中,在大潮中边学边游泳,走到今天。现

2016-03-14 22:39:26 10188 2

原创 tcp三次握手都没有建立, 还谈什么业务包呢?------聊聊最近的一个扯皮问题

我们知道, udp是不要建立连接的,  我们甚至可以对着一个非实际的ip(比如1.1.1.1)的某端口发包, 此时, 如果抓包, 我们可以看到, 发送方是发了业务包的。 但是, 在tcp中就不一样了, 三次握手没有建立的话, 谈不上业务数据包。        来说说这样一个问题: 最近, 我作为客户端去请求服务端, 当请求量比较小的时候, 一切正常, 我能收到正确的返回包, 但是, 当请求量的

2016-03-14 22:38:06 7744

原创 对接联调是一个情商活

两年前, 毕业后第一次参加工作, 做了一个监控工具, 经常需要与别的公司的同事对接联调。 如今, 几乎每天都是对接联调, 不得不说, 需要技术, 但更是一个情商活。        知己知彼, 百战不殆。

2016-03-14 22:07:22 8093

原创 调用成熟接口、谨慎使用未知接口------遇到问题时, 不一定要死死纠缠原因

在实际开发中, 经常要调用一些其他接口。  最近遇到一个问题, 成熟接口在另外一个模块, 与它功能相似的接口在本模块, 于是, 我直接调用本模块的接口, 然后, 就不work了, 由于时间关系, 就没有去细究原因。 而是先解决问题, 移植成熟的借口过来, 测试了一下, 靠谱。         当一路行不通时, 不一定要死死纠缠, 工作就是要解决问题。 当方案1不work的时候, 我们可以快速启

2016-03-14 22:03:31 8113

ipscanner.rar

获取网络的ip, host name和mac地址。我想免费让大家下载, 但csdn规定了必须设置积分, 没办法。

2017-12-01

linux protobuf安装文件

linux, google protobuf, 安装文件。 使用方法:http://blog.csdn.net/stpeace/article/details/53029812

2016-11-04

linux tree命令的源码

很多linux上没有tree命令, 该资源提供了tree命令的源码, 大家可以下载, 编译并安装, 具体请参考:http://blog.csdn.net/stpeace/article/details/49524273

2015-11-01

编译好的openssl库和头文件

编译好的openssl库, 欢迎使用, 具体使用方法, 请见http://blog.csdn.net/stpeace/article/details/41921287

2014-12-14

入门数据库sqlite3的最佳实践资料

入门数据库sqlite3的最佳实践资料, 里面是我打包好的程序, 附加一些数据库工具, 非常可以。 当然你也可以参考我的博文http://blog.csdn.net/stpeace/article/details/38503843

2014-08-12

Wireshark抓包工具

Wireshark抓包分析工具, 非常好用, 非常实用。

2014-06-08

优秀的截图软件

截图软件fast stone. 解压即可使用。 解压后, 可能会产生一些依赖性文件, 请不要轻易删除。

2014-05-25

获取网卡信息所需的头文件和库

获取网卡信息所需的头文件和库:IPEXPORT.H Iphlpapi.h IPHLPAPI.LIB IPRTRMIB.H IPTYPES.H

2013-10-19

哈希值计算软件

可以计算md5, sha1, sha256等哈希值的工具软件,我无法形容它的优秀。

2013-10-18

在Windows下学习Linux命令

在Windows下想学linux命令的同志,你终于找到了该资料。用法:解压,然后双击其中的cmd.exe, 然后就可以输入linux命令了,比如ls等(千万要注意,不要进行路径切换,否则linux命令就执行不了,总之,要确保相应文件在当前目录下)。

2013-08-08

计算机网络第5版谢希仁编配套光盘资料

计算机网络第5版谢希仁编配套光盘资料,这是计算机考研的指定教材对应的资料,你应该拥有它。

2013-07-19

OllyDBG反汇编工具

OllyDBG反汇编工具,非常强大。深化功底,需此工具。

2013-07-19

masm汇编器

微软的汇编器,其中有关键的masm.exe和link.exe,我试过,发现可用。

2013-07-19

word转pdf的插件

word转pdf的插件,直接安装即可,安装完后,“另存”word文档的时候,可以选择pdf(我用的word版本为2007)。

2013-07-18

音频处理软件Gold Wave

一款强大的音频处理软件,可以对音频进行各种处理。例如:如果你在准备某考试,需要听音频资料,但是,你嫌音频太慢,而且你的MP3播放器无法加速,那么你可以用该软件对音频本身进行加速,即改变音频本身,使之变快。另外,在处理的时候,可以实现批处理(我亲自实践过,发现可行)。

2013-07-17

H.264visa软件

一款非常强大的H.264视频码流的解析软件,可以看到解码后视频的像素值,运动矢量,宏块等非常多的信息(也可以打开原始的YUV视频,并看到像素值,但必须先用该软件打开某一H.264视频码流),比Elecard StreamEye软件(有bug)更为强大,我一直用H.264visa,目前没有发现有什么bug. 另外,该软件安装后1个月就会过期,没有关系,1个月后,你重新安装一次即可。

2013-07-13

Elecard StreamEye

Elecard StreamEye,一款分析H.264视频码流的工具,如果你在学习H.264,那么,你应该拥有它。

2013-07-13

YUVviewer :原始的YUV视频的播放器

原始的YUV视频的播放器(软件不是我写的),如果你做视频处理、视频压缩编码、视频通信、视频检索、视频取证,那么你很可能需要它。该软件的缺点是:你无法看到YUV视频的像素值。

2013-06-24

经典的C语言编译器:TC2.0

一款经典的C语言编译器:Borland Turbo C 2.0. 怀念Borland产品的人可以用一下,体验一下DOS下的编程。如果是C语言初学者,建议用MS的VC++6.0. 我试过,该TC2.0可以正常使用。

2013-06-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除