自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

stpeace的专栏

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

原创 用简单的方法实战演练搭建http服务器(Windows上)------专为http新手

在之前的博文中, 我陆续说过如何搭建ftp, sftp, tftp服务器, 在本文中, 我们来继续聊如何实战搭建一个http服务器。         http服务器有很多种, 如tomcat,apache等, 然而, 很多新手无法搭建和配置成功, 颇为受挫, 内心不爽。 我保证, 本文搭建http...

2016-11-25 14:14:16

阅读数 30973

评论数 8

原创 sort | uniq -c | sort -rnk 1 在数据统计中的重要用途------按频率排序

我们来看看a.txt文件: taoge@localhost Desktop> cat a.txt 123 456 1111 456 123 123 1 2 3 taoge@localhost Desktop>        先对其排序(按串排序): taoge@localhost De...

2016-11-20 13:02:59

阅读数 17784

评论数 1

原创 awk、sort等命令搞定几十行代码C++做的事------用好工具, 事半功倍

在后台开发中, 经常遇到服务波动的情况, 一般来说, 在监控系统中可以看到这种波动, 那是否与我们机器上的错误log对应起来了呢? 我们有必要对机器上的错误log进行统计! 规范log中一般会有时间, 假设时间格式为: xxx[2016-11-20 hh:mm:ss]yyy, 那...

2016-11-20 12:35:19

阅读数 6214

评论数 2

原创 如何用程序判定点是否在线段上?

之前说过点在直线上的判断, 用面积法。 那么如何判定点C是否在线段AB上呢?       1.  判断C是否在直线AB上       2.  判断Xc和Xa, Xb的大小关系       3.  判断Yc和Ya, Yb的大小关系

2016-11-20 10:36:35

阅读数 7662

评论数 0

原创 去看刘晓庆演的话剧《武则天》

去看刘晓庆演的话剧《武则天》, 见到了刘晓庆本尊了, 演出非常成功。        刘晓庆的人生, 和武则天一样, 都是传奇!

2016-11-19 22:56:43

阅读数 6019

评论数 0

转载 有趣的问题:C的表达式x == x,何时为假?!

转载地址:http://blog.chinaunix.net/uid-23629988-id-3126229.html 作者:gfree.wind@gmail.com 博客:blog.focus-linux.net   linuxfocus.blog.chinaunix.net    ...

2016-11-19 17:54:03

阅读数 5659

评论数 0

原创 如何用程序判定三点是否共线?

如何用程序判定三点是否共线? 别扯什么线性规划、直线方程, 不好操作啊, 还要分类讨论。 其实很简单, 只需要判定这三点组成的“三角形”面积是否为零! 有兴趣的朋友可以写程序代码来玩玩, 我之前写过了。 PS. 已知三点, 求面积很简单, 直接海伦公式搞起。

2016-11-19 16:24:00

阅读数 10115

评论数 0

原创 《ACM程序设计》 曾棕根

我没参加过ACM, 也没有玩过ACM, 当初纯粹是为了兴趣, 才买这本书的, 而且这本书满是程序, 是我的菜。        这本书的前面章节把常用的STL都讲了一遍, 虽然基础, 但非常不错。 我目前工作中用到的STL也都是这些! 书中后面主要是习题的演练, 很多思路都很不错, 能学到不少东西。...

2016-11-19 16:06:55

阅读数 6682

评论数 0

原创 《linux C从入门到精通》 xx科技

这类书的题目简直是噱头, 明明就只是入门而已, 谈何精通? 而且这些书都鲜有作者自己的思考, 无非就是拿网上的东西进行复制粘贴而已, 没有什么营养价值。 makefile那一张, 从网上拷贝了不少东西吧, 作者们?         好处就是比网上那些东西会正式一点点, 而且比较集中, 省去了在网...

2016-11-19 12:30:11

阅读数 8481

评论数 6

原创 测试环境server的全量流水------节省了90%的时间

刚来公司的时候, 每当测试同学提一个bug, 我就去下载对应的app来重现, 各种蛋疼和浪费时间。 其实, 只要流水和log足够完善, 还怕啥?         后来做需求联调的时候, 由于整个线路比较长, 经常跟别的同学说, 你操作触发一下, 我来抓个包和log。 后来, 我发现这种方式真是太低...

2016-11-19 11:49:41

阅读数 5629

评论数 0

原创 你应该在makefile中加上ldd -r和md5sum命令

在linux中, 当我们编译出so的时候, 会经常用ldd -r去查看依赖库(确实是否缺依赖, 便于在编译期间发现问题), 也会用md5sum命令来查看so库的md5值, 便于比对和确认。        别浪费体力每次去敲这两个命令了, 直接放在makefile中吧, 这么搞起后, 不用每次敲命令...

2016-11-19 11:42:27

阅读数 5924

评论数 0

原创 搭建环境时遇到core dump问题

刚来公司的时候, 需要搭建测试环境, 我部署包后, 不断提示core dump,   吓我一跳。 后来请老鸟帮解决了。         最近又搭建了测试环境, 部署包后, 又是一堆core dump提示, 冤枉不愿望, 我什么都没有做, 什么代码都没有写, 怎么会core dump呢?  原来, ...

2016-11-19 11:38:25

阅读数 5658

评论数 0

原创 昨天听某哥说, 某变量没有初始化, 结果有概率性大坑, 浪费不少时间定位处理!

从入行那一天起, 公司的培训教材就写着变量要初始化, 否则呵呵哒。 在我的老东家, 这种规范执行地非常好。 如果变量不初始化, 会被系统检查出来, 然后责令改正。        但是, 在现在公司, 虽然也有类似规范, 但没有多少人遵守, 也没有人在意地check.          我思考了一下...

2016-11-19 11:33:34

阅读数 5666

评论数 0

原创 系统中负负得正的兼容逻辑也许暂时能跑起来, 但迟早会坑人!

客户端发布后, 一直运行良好, 但实际上有个bug(需要特定时间段才重现)。 后来, 真的就出现bug了, 没办法, 后台兼容处理吧。  两边产生负负得正的效果, 跑起来没问题, 看起来爽得很呢。        但是, 某天, 后台有新同学接手业务, 不知道之前的负负得正的兼容逻辑, 于是在后台代...

2016-11-19 11:07:45

阅读数 5523

评论数 0

原创 不要过分相信基础函数, 因为那也是人写的------警惕负负得正的现有逻辑之坑

同学A调用基础函数, OK.  我调用基础函数,出错!  我的代码如下: #include #include #include #include using namespace std; int basicApi(vector &v, map &m) { vecto...

2016-11-19 00:11:49

阅读数 5824

评论数 0

原创 make又一编译错误: cannot find -lxxx

说来也怪, 我明明在LIB中增加了这个库:  LIB += -L../../.../ -lxxx , 且在对应目录有libxxx.a库啊,  但是却提示:cannot find -lxxx, 我的编译命令为:       g++ $(CXXFLAGS) $(INC) $(LIB) $(CPPLIS...

2016-11-14 07:46:34

阅读数 5773

评论数 0

原创 该写地址的地方, 却写了变量本身, 产生core, 导致系统异常

本来接口是: int fun(ST* ps, uint8_t * pb, int32_t * pi, char *p);        结果我在写第三个参数的时候, 直接把整数放在那个地方, 由于调用时, 我进行了int32_t*强转, 所以没有编译错误。        不过, 运行的时候, 呵呵...

2016-11-13 15:52:51

阅读数 5523

评论数 0

原创 对序列化后的buffer进行strlen操作, oh my god

最近找到一个服务框架, 我在里面写了几行代码, 进行序列化, 然后就没有达到我的预期结果, 跟踪了一下, 发现原有代码对序列化后的buffer进行了strlen操作, oh my god.  难怪解包失败。        实际上, 我们已经聊过类似话题, 请见:http://blog.csdn.n...

2016-11-13 14:40:11

阅读数 5548

评论数 0

原创 makefile写错(多了.a)导致了cannot find -libtest.a------耗费10分钟才找出原因

对于cannot find -libtest.a这种编译错误, 我们已经说过多次, 直接去找对应的库文件为什么不存在即可。       最近写makefile, 出现了这个提示, 让我哭笑不得, 搞了10多分钟才查出原因。 明明test.a文件存在于对应目录吗, 怎么找不到呢?       原来,...

2016-11-13 14:22:27

阅读数 5753

评论数 0

原创 log调试利器------__TIME__, __FILE__, __FUNCTION__, __LINE__, __VA_ARGS__搞起

来来来, 一起写个比printf更详细的log api接口: #include #include #include using namespace std; #define DEBUG_LOG(...) debug_log("DEBUG", __TIME__, __F...

2016-11-13 00:49:59

阅读数 6363

评论数 0

原创 空格之坑------调用系统函数错误, 那是你自己的问题哈

最近部署一个日志工具, 启动工具进程, 输入参数的时候, log显示参数解析错误。  我有两个疑问:        1. 以前是好好的啊? 怎么现在会有问题呢?        2. 解析参数是基础系统函数做的, 怎么会出错呢?        麻蛋, 不卖关子了, 经定位, 发现在命令行输入参数...

2016-11-12 11:02:42

阅读数 5685

评论数 0

原创 如何把当前目录下的所有.c文件转化为对应的.cpp文件?------makefile的另类用途

如何把当前目录下的所有.c文件转化为对应的.cpp文件? 想了一下, 貌似不太好搞, 那就用makefile吧。 请参考之前的博文:        http://blog.csdn.net/stpeace/article/details/53054679

2016-11-12 02:34:45

阅读数 6915

评论数 0

原创 cp时请考虑软链接------肯定有人在这里踩坑

       cp目录的时候, 软链会保存, 如下:   taoge@localhost Desktop> ll link total 0 -rw-r--r-- 1 taoge users 0 2016-11-10 23:06 a.txt lrwxrwxrwx 1 taoge...

2016-11-12 02:32:47

阅读数 15428

评论数 0

原创 scp -r拷贝目录(其中有软链)之坑------被404问题折腾一个晚上啊!!!

最近在测试环境搭建一个http服务器, 为了简便起见, 我就直接从外网机器拷贝到测试机, 用的是scp -r命令, 然后糟糕的事情就发生了。 测试环境上有个问题(体现为404错误), 无论如何也调不通, 我怎么想也没有想明白。文件明明存在啊, 访问的路径也正确, 服务器上也接受到了网...

2016-11-12 02:28:48

阅读数 12645

评论数 0

原创 不要给真理, 要给解决方案!

不要给真理, 要给解决方案!

2016-11-06 22:34:04

阅读数 5568

评论数 0

原创 简单聊一下makefile中的 =, :=, ?=和+=

最容易混淆的是 =和:=, 我们先来看看makefile: x = hello y = $(x) x = world test1: test1.cpp @echo $(y)       执行make后, 结果为world,  再看改动后的makefile: x = hello y := $(...

2016-11-06 21:09:14

阅读数 6788

评论数 0

原创 makefile中"模式规则"的引入和介绍------%:%.cpp

目录下有test1.cpp, test2.cpp, test3.cpp三个独立文件(彼此之间并无依赖与调用关系), 要编译成三个可执行程序, 怎么搞呢? 我们看看makefile: test1: test1.cpp test2: test2.cpp test3: test3.cpp clean: ...

2016-11-06 16:39:30

阅读数 9273

评论数 0

原创 makefile中的多target混乱依赖模式

来看个例子, makefile内容为: test1 test2: test1.cpp test2.cpp clean: rm -f test1 test2        这是一种非常懒散的写法, 虽然可以work: taoge@localhost Desktop> make clean ...

2016-11-06 15:05:44

阅读数 6318

评论数 0

原创 为什么执行make命令时, clean后面的命令不会执行?

来看个简单的makefile: test1: test1.cpp clean: @echo $(CXX)         执行make命令后, clean后的命令为什么不执行呢?  它本来是要执行的, 但clean作为目标, 没有找到对应的依赖文件, 所以不执行。 那该怎么强制单...

2016-11-06 13:29:54

阅读数 8265

评论数 5

原创 makefile中的默认命令和默认参数------CXX和CXXFLAGS等

先来看makefile: test1: test1.cpp clean: @echo $(CXX) @echo $(CC) @echo $(AR) @echo $(RM) @echo $(CXXFLAGS) @echo $(CFLAGS) @echo $(ARFLAGS) ...

2016-11-06 13:22:18

阅读数 10157

评论数 0

原创 入口深, 效率低

很多软件, 把某功能的入口做得很深, 用起来就费劲。一般来说, 如果从主界面开始算(第1层), 一个功能的深度超过3, 我就不太想用了。 很多人的简历啊, 没有把关键信息放在简历文件名字中, 错失第一入口! 在我们工作中也一样, 查找常用资料, 深度最好不要超过3. ...

2016-11-06 09:51:05

阅读数 5640

评论数 0

原创 一个rm -rf ???*命令下去, 整个人都不好了

整理linux文件, 发现有个名为"???xxx"的文件, 于是我采用rm -rf ???*来删除, 然后, 整个人都不好了   所幸, 这个目录不是非常致命。    以后用rm一定要谨慎了, 不要用非预期行为。

2016-11-06 09:47:31

阅读数 8493

评论数 0

原创 makefile中命令写在两行和写在一行的区别

来看mafile: main: main.o g++ -o main main.o main.o: main.cpp g++ -o main.o -c main.cpp clean: cd test ; pwd cd . pwd        看看结果: taoge@localho...

2016-11-06 00:17:04

阅读数 7466

评论数 0

原创 makefile中"-"符号的使用

在makefile中,  -用预告诉make命令忽略错误, 我们来简单看下: main: main.o g++ -o main main.o main.o: main.cpp g++ -o main.o -c main.cpp clean: rm main *.o        执行结果...

2016-11-05 23:09:00

阅读数 5778

评论数 0

原创 make -k(keep going)命令会在发现错误时继续执行(用于一次发现所有错误)

我们在执行makefile进行编译的时, 会经常遇到错误, 然后解决, 然后又make,  然后又发现错误, 然后又解决, 烦人, 能不能一次发现所有错误呢?          能的!         main.cpp很简单, 我们只看makefile(故意写成错误的g+++): main: ...

2016-11-05 22:55:58

阅读数 7901

评论数 0

原创 make -n(仅列出命令, 但不会执行)用于调试makefile

我们先来看一个简单程序: #include using namespace std; int main() { cout << "hello world" << endl; return 0; }        然后来看看make...

2016-11-05 22:39:53

阅读数 7093

评论数 0

原创 无protobuf协议情况下的反序列化------貌似无解, 其实有解!

用过protobuf的人都知道, protobuf的序列化过程是:         协议文件(.proto) + 原始数据 ====》 buffer         反序列化的过程是:         buffer + 协议文件(.proto) ===>原始数据         那有没有...

2016-11-05 21:36:42

阅读数 10480

评论数 3

原创 一起来看看protobuf中容易引起bug的一个细节

我们已经介绍过protobuf的使用了, 故不再赘述, 下面我们来看看如下代码的一个小bug:         test.proto内容为: package NS; message PointReq { required int32 x=1; required int...

2016-11-05 19:59:41

阅读数 8674

评论数 1

原创 我对C++ string和length方法的一个长期误解------从protobuf序列化说起(没处理好会引起数据丢失、反序列化失败哦!)

自认为C和C++基础知识还行, 于是以为下面程序的结果都是3, 看看: #include #include using namespace std; int main() { char szTest[100] = "abc\0def"; // 右边串提前被'...

2016-11-05 18:54:11

阅读数 9972

评论数 4

原创 为什么要实现程序指令和程序数据的分离?

就以linux的ELF为例吧, 程序放在text段(你也可以叫它code段), 这是程序指令。  而数据放在data端和bss段, 这是程序数据。 那为什么要实现程序指令和程序数据的分离呢?         1.   程序装载后, 程序指令放只读区域, 程序数据放在可读写区域。 可以防止程序被篡...

2016-11-05 16:19:33

阅读数 7174

评论数 0

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