自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

认知 行动 坚持

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

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

原创 救命的全局变量?

先啥也不说, 把实际的复杂场景抽象如下:#include using namespace std;typedef enum{ UNDEF_F, F1, F2, F3,}FLAG;void base(int x, FLAG flag){ cout << x << " " << flag << endl;}// 已知这个函数的接口绝对不能改变void middl

2015-03-30 23:05:19 7235

原创 公网ip地址w.x.y.z可以用在局域网内吗?

任何计算机网络的教材把什么A, B, C, D, E这几类地址已经讲烂了, 我就不想再嚼了。 本文只为搞清一个问题:公网ip地址w.x.y.z可以用在局域网内吗?       那一年, 我第一次在局域网内用类似于117.1.1.2这样的地址, 于是纳闷了一会儿, 这好像是个公网地址啊! 好, 在百度输入一下117.1.1.2, 发现是越南的, 但这个ip确实用在局域网中可以正常使用, 而且跟越

2015-03-30 22:18:50 9474 7

原创 存mac地址实际上用6个字节/字符就OK了

最近发现很多地方都是用6个字节来存mac地址, 仔细想了一下, 觉得还不错, 挺有意思的, 所以下面我也来玩一下:#include using namespace std;int main(){ unsigned char mac[6] = {46, 75, 243, 56, 23, 122}; // 我随便写的哈, 另外注意必须用unsigned char int i = 0; for(

2015-03-29 23:54:26 16523 2

原创 默认的类类型转换

我们知道, int, float,doulbe等之间可以进行隐式的转换, 那么这些内置类型可以转化为类类型么? 我们来看看程序吧:#include using namespace std;class A{public: int x; int y; int z;public: A() { cout << "default" << endl; }

2015-03-29 21:47:59 7303 1

原创 C++ Primer 第五版中的Sales_data类---用来模拟Sales_item类的实现

最近又在复习C++, 看到C++ Primer第五版, 感觉很好, 各种讲述很是引人入胜。 作者先讲述了int的情况, 然后抽象地讲述了Sales_item类, 然后企图用Sales_data类的实现过程来逐步介绍Sales_item类的实现, 逻辑很清晰。 下面, 我们来直接看一下Sales_data类(说明: 我有裁剪和修改):#include #include using namespace std;cl

2015-03-29 13:56:24 10695 5

原创 Windows下利用C语言程序设置环境变量---能否用环境变量实现进程间的通信?

先看什么是环境变量吧, 在Windows的cmd中, 我们输入一下set命令, 得到:C:\Documents and Settings\Administrator>setALLUSERSPROFILE=C:\Documents and Settings\All UsersAPPDATA=C:\Documents and Settings\Administrator\Applicati

2015-03-27 23:57:47 12086 2

转载 网卡的IFF_UP 和 IFF_RUNNING 的差别在哪?

由于没有找到最原始的位置, 所以我只能给出一个间接地址:http://blog.csdn.net/zqt520/article/details/17567053       摘录如下:     对于如何在 Linux 底下取得网络接口的状态,过去曾经于”取得网络装置(NETDEVICE)的系统讯息”提过,基本上整个操作是很简单明了的,应该不会有太大的问题。

2015-03-25 23:40:49 15689

原创 自己写一个异常类my_own_exception来感知一下异常机制

在本文中, 我自己来写一个异常类my_own_exception, 主要为了感知一下C++异常机制, 看代码:#include using namespace std;class my_own_exception{private: char szMsg[1024];public: my_own_exception(const char *p) { memset(szMs

2015-03-25 22:31:22 8737

原创 C++ string的c_str函数极易产生bug, 有陷阱, 请慎用---强烈建议用strncpy来拷贝c_str

string的c_str函数很怪异很危险, 先来看一个简单的例子:#include #include using namespace std;int main(){ string s = "abc"; const char *p = s.c_str(); cout << p << endl; // abc s = "xyz"; cout << p << endl; //

2015-03-24 23:39:23 13828 6

原创 static_cast, dynamic_cast, const_cast, reinterpret_cast的简单介绍

在C++中, 我们有新的强制转换机制, 为什么要这么搞呢? 因为这些关键字非常显眼, 而且一旦出了问题, 可以方便查阅code.  我们今天暂时不说dynamic_cast, 仅仅感知一下其余的三个:int main(){ // 普通转换, 只能用static_cast int i = 0; double d = static_cast(i); // 转换回来, 其实此处也可以用

2015-03-24 22:06:57 7124

原创 谈谈typedef char* PChar; const PChar p;的错误之处

我们之前讨论过const_iterator和const形式的iterator的区别, 直接引用过来, 代码如下:#include #include using namespace std;int main(){ vector v(10); vector::iterator it; for(it = v.begin(); it != v.end(); it++) { *

2015-03-22 14:31:09 8630

原创 STL中的bitset

我们已经对vector有所了解了, vector是类模板, vector才是类。 在vector中, 我们需要指定类型, 但是, 在bitset中, 我们需要指定的是长度, bitset是类模板, bitset这样的东东才是类。      好吧, 多的不需要说, 一切尽在程序中:#include #include #include using namespace std;int

2015-03-22 13:54:52 7334

原创 C++迭代器:const_iterator和const形式的iterator有什么区别?

从C语言走过来的猿们, 对指针已经很熟悉了, 也很清楚指向常量的指针和常指针的区别。 在本文中, 我们来学习一下C++中的迭代器, 顺便类比指针来学习一下指向常量的迭代器和常迭代器的区别。       其实, 迭代器很简单, 你就把它理解为一种类似指针的东西就行了, 毕竟指针的概率是广义的, 你的手指, 大拇指, 小拇指, 那就是个指针。 比如, 完全可以把vector::iterator理解

2015-03-21 12:34:12 10716 1

原创 为什么是string::size_type而不是int?---顺便聊聊无符号数和负数的比较

我们先看下面的程序(假设某环境下, 用16位表示整形):#include #include #include using namespace std;int main(){ int a = pow(2, 15) - 1; // 假设某环境下, 用16位表示整形 cout << a << endl; // a是最大的int值 string s(a, 'x'); cout << s

2015-03-21 11:18:59 8160

转载 linux中读取网卡信息(ip, mask, mac)以及判断物理网线是否插好的C程序---我亲自试了一下,还不错!

说明: 我主要转载如下两篇文章, 但本文中加入了自己的一些描述 转载地址一:http://blog.chinaunix.net/uid-20692625-id-3172833.html 转载地址二:http://blog.chinaunix.net/uid-8048969-id-3417143.html 在linux系统中, 我们可以通过i

2015-03-20 23:44:16 10447 3

原创 C++头文件中有定义会造成冲突隐患么? --- 谈谈4个例外情况

我们都知道C++的一次定义原则, 比如, 你要是在头文件中定义int a = 0; 那是非常危险的, 一旦被多个.cpp文件包含, 会造成链接冲突。 在本文中, 我们来看看头文件中可以有定义的四个例外情况。 首先, 我们来看一个有错误的程序: test.h的内容为:#ifndef TEST_HEADER#define TEST_HEADERint a

2015-03-20 00:10:30 10108 4

转载 C++ Primer 第4版中的Sales_item.h源码

转载地址:C++ Primer 第四版 Sales_item.h文件源码如下:#ifndef SALESITEM_H#define SALESITEM_H#include #include class Sales_item{public: Sales_item(const std::string &book):isbn(book),uni

2015-03-19 23:19:08 13710 8

原创 for(int i = 0; i < 10; i++)和ctrl z在VC++6.0和VS2005中的不同表现

某次校招机试, 上机环境是VC++6.0, 结果一同学写出了下面的程序(我简化之后的):#include using namespace std;int main(){ for(int i = 0; i < 10; i++) { // ... } for(int i = 0; i < 10; i++) { // ... } return 0;}

2015-03-19 23:10:07 8252 1

原创 基于select模型的tcp服务器------一个服务器如何与多个客户端进行通信?

很多时候, 服务器都需要同时与多个客户端进行通信, 服务嘛, 就是这样。 下面, 我们用select模型来简要模拟一下这种情形。代码是最好的解释, 所以, 还是上代码吧: 服务端程序:#include #include #pragma comment(lib, "ws2_32.lib")int totalSockets = 0; // socket的总数SOCKE

2015-03-17 22:00:59 16528 6

原创 socket何时处于”读就绪状态“?---通过“应用程序大爷“和“内核孙子“对话再看重要的select函数的用法

前面, 我已经陆续介绍过select函数的一些零碎知识, 在本文中,我们来讨论这样一个问题:socket何时处于读就绪状态? 其实主要讨论select函数, 毕竟socket的读就绪状态会导致select函数立即返回。 需要注意的是: Windows环境下的select和Linux环境下的select大同小异, 为了便于叙述和实战, 我们以Windows下的select函数为例。

2015-03-17 21:57:02 9584 1

原创 《我的互联网方法论》 周鸿祎 --- 用户至上, 体验为王, 免费模式, 颠覆创新

作为一个IT从业者, 我是很佩服老周的。 就我个人而言, 我很喜欢老周那种桀骜不驯的性格。 最近买了老周的《我的互联网方法论》, 在一个不加班的周日, 一口气看完, 觉得写得非常精彩, 可读性强。       在拓展视野的同时, 也感受到了里面很多振聋发聩, 耳目一新的观点和思维。 在此, 我就不花过多的笔墨去重复其中的观点了, 但总结起来就是:用户至上, 体验为王, 免费模式, 颠覆创新。

2015-03-15 18:07:39 9376

原创 似非而是的程序员悖论---为什么救火比防火更加吃香?

防火和救火哪个更重要呢?几乎所有的人都会给出一致的答案:当然是防火更重要啦。确实如此,我也认为防火比救火更重要。然而,看看现实中的情况吧,我们经常看到某某消防员不顾生命危险消灭了一场大火,获得各界的表扬和赞誉,被誉为英雄, 如果不幸牺牲, 还会被追封为烈士。却很少见到社会各界表扬那些防火工作做得很好的人。这就有点意思了:救火队员受到表扬,防火工作

2015-03-15 11:38:29 9597 8

原创 乔丹和王治郅, 谁更适合教你打篮球?---与初级程序员们分享、共勉!

乔丹是家喻户晓的篮球明星, 王治郅呢? 虽然名气和球技逊色于乔丹, 但也是很有名很厉害的。 如果你想学好打篮球, 我认为无论是乔丹还是王治郅, 他们都非常有能力有资格教你, 问题是: 乔丹一定会比王治郅教得好吗? 我看未必。       好, 我们先放下篮球这个话题, 转到程序员身上来。              我多次在论坛、网站和一些程序员QQ群里都碰到一些初学者问问题, 一些所谓的

2015-03-15 10:45:04 8668 2

转载 释放自己内心的能量---赞一下周光耀老师

转载地址:http://blog.sina.com.cn/s/blog_450a04a60100u79l.html, 作者: 周光耀老师    人生的最大的死穴在于想把自己的不足、问题掩盖,结果就是放不开,最终就是迷失了自己。我们太多的人都过份的在意自己的缺点与不足,而忽略了生活的核心是尽情的绽放自己。人生只有经历后才能沉淀,如果我们连绽放都不敢,被别人批评两句就生气,你怎么可

2015-03-14 23:37:59 8250

原创 学会利用“配置文件”优化我们的代码结构

之前我们讲过某些时候可以利用数组来代替if/else来优化代码, 在本文中, 我们再次来复习一下, 顺便学学利用配置文件来优化代码结构, 好, 开始吧。 假设有这样一个场景: 某系统会产生三类错误, 分别是:ERROR_TYPE_ONE,ERROR_TYPE_TWO,ERROR_TYPE_THREE. 但是呢, 各省份有不同的需求, 比如: 1. 安徽省要

2015-03-13 23:40:35 8283 2

原创 再谈谈注册(本质是建立映射)与回调

在之前的博文中, 我们探讨过映射的重要作用, 请直接看:http://blog.csdn.net/stpeace/article/details/39452203, 在那篇文章中, 我们是用STL中的map来做的, map建立的是key-value映射, 在本文中, 我们自己来建立映射, 并讨论一个更为复杂的程序, 顺便再次复习一下注册与回调。

2015-03-12 23:34:45 7387

原创 验证: 默认情况下, const变量仅在当前文件范围内有效

在本文中, 我们来验证一下:默认情况下, const变量仅在当前文件范围内有效。       实验一:       main.cpp内容如下:#include using namespace std;extern int n;int main(){ cout << n << endl; return 0;}      test.cpp的内容如下:int

2015-03-11 23:19:33 8255

原创 如何获取main函数(Windows/Linux环境下)的返回值?

不知道为什么, 我突然想到了这个古怪的问题。 下面, 我们来实战一下: test0.exe对应的程序为:int main(){ return 0;} test1.exe对应的程序为:int main(){ return 1;} 为了简便起见, 我把test0.exe, test1.exe和cmd.exe拷贝到同一文件夹下, 双击c

2015-03-10 22:56:07 10872

原创 要找重复的串, 好麻烦, 还是写个程序来搞吧---利用algorithm对vector<string>进行sort

文件中每个串独占文件的一行, 大概有接近400个串, 要找出其中重复的串, 有点麻烦, 于是写了个程序, 经测试ok.#include #include #include #include #include using namespace std;bool compare(string a, string b){ if(a < b) { return true; }

2015-03-10 21:47:23 7568

转载 郭靖和黄蓉竟然是这样死的!---某些人最近看了柴静的《穹顶之下》后狂喷她,这些人可能就是本文中的甲乙丙丁

转载地址:http://help.3g.163.com/15/0305/11/AJUICPKN00964K7O.html, 作者:龅牙赵公元1273年,蒙古大军压境。虽然14年前独臂大侠杨过已经飞石击毙了蒙军统帅蒙哥大汗,但这只是稍缓了蒙军南侵的步伐,襄阳依旧被围,华夏危在旦夕。郭靖站在襄阳城的城楼上,远处蒙军的帐篷绵延数十里不绝,瞭望塔高耸入云。郭靖在心中又默念了一遍

2015-03-09 23:46:28 8594 4

原创 recv函数的返回值测试

在本文中, 我们来关注recv函数何时返回? 返回啥? 我们先看服务端程序:#include #include // winsock接口#pragma comment(lib, "ws2_32.lib") // winsock实现int main(){ WORD wVersionRequested; // 双字节,winsock库的版本 WSADATA wsa

2015-03-09 22:29:26 9301

原创 判断是否为递增数组(某同事最近去某公司遇到的笔试题)

某同事去某公司面试, 遇到笔试题目:判断是否为递增数组, 原题是填空题, 现在我来写写完整的程序:#include using namespace std;bool isIncrease(int a[], int size){ if(NULL == a || size <= 0) { exit(1); } if(1 == size) { return false;

2015-03-09 21:49:07 7493 2

原创 由setjmp,longjmp到throw,try,catch

我们先来看一个setjmp, longjmp的简单程序:#include #include using namespace std;class A{public: A() { cout << "constructor" << endl; } ~A() { cout << "destructor" << endl; }};jmp_buf xxx;vo

2015-03-02 23:55:06 7616

原创 过年回来, 我的网络不可用了---顺便实战扯扯拨号上网和无线路由器的配置(产生所谓的wifi信号)

过年前回家的时候, 网络是好好的, 结果过年来, 网络就连接不上了。 我的网络连接是这样的, 我出钱, 电信人员给我分配了一个账号x和密码y, 并给我一根从远处牵过来的网线, 该网线通过无线路由器, 在无线路由器上再设置一个账号z和密码w(这个z 就是大家搜索无线网络时候, 经常碰到的, 也就是wifi的账号, w是密码, 别人如果不知道这个w, 就无法用这个wifi), 形成了

2015-03-01 23:46:33 8660 1

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关注的人

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