自定义博客皮肤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的专栏

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

原创 别再耍流氓了: 请别再用strcpy, 而用strncpy

我们先来看看strcpy, 下面的程序没有问题: #include using namespace std; int main() { char str[4] = {0}; char *p = "abc"; strcpy(str, p); cout <<...

2014-03-30 14:31:48

阅读数 23803

评论数 0

原创 看似山重水复,其实有可能柳暗花明(跳出程序猿思维之外)

经历一:       上个月,系统中某程序出现了异常,我知道是哪个部位出现了问题,但不知道出问题的根本原因是什么,找相关人, 他自己也不知道问题出在哪。哎。 我周五搞了一天,周末两天加班,都没有把这个异常搞定。反正, 加上它就有问题,没有它,就没有问题。       单步调试,抓日志?狗屁! 都分...

2014-03-30 13:17:48

阅读数 6603

评论数 2

原创 串口是个什么玩意儿?

没图你说个N, 直接上图:       串口有公口和母口,这么取名,真是太形象了,不服都不行,牛逼。串口通常可以叫做COM(communication)口, 一般是9口,4+5.  有的电脑有多个串口,比如com1和com2.在嵌入式开发中,常用这个东西来打印日志,强大啊。      ...

2014-03-30 12:46:35

阅读数 6335

评论数 2

原创 如何大致判断对方电脑的操作系统类型?

ping一下百度: C:\Documents and Settings\Administrator>ping www.baidu.com Pinging www.a.shifen.com [61.135.169.125] with 32 bytes of data: Reply ...

2014-03-30 00:41:21

阅读数 8446

评论数 0

原创 某牛人说:C和C++的区别不大

爱讨论这个话题的,有两种人呢,一种是牛逼的人,一种是装逼的人,不说了。         某牛人说过, C语言中的全局变量和函数,就类似于C++中的成员变量和方法, 我肤浅地认为这句话相当有道理。不多说,看两个程序吧: #include using namespace std; int w...

2014-03-29 23:41:26

阅读数 5953

评论数 0

原创 昨天踩到一坨臭狗屎(与无损压缩有关)

昨天踩到一坨臭狗屎, 经过如下:       同事给我一个.zip包的地址,不知怎么搞的,我一download下来, 居然是download里面的文件,也就是说,我解压缩了,这应该没有问题吧。可是某系统需要的是压缩包,于是我又把它压缩成.zip包,后来用就一直有问题,无法定位,思前想后,找不到问题...

2014-03-29 23:17:57

阅读数 6130

评论数 1

原创 机试中一个投机取巧的方法(先声明一下,我不负任何责任哈)

在机试题目中,经常需要使用动态数组或链表。大家可能很容易想到stl, 但有些机试禁止你用stl.         1.你可能说,定义一个超级大的数组就可以,你牛。但后台测试用例一运行,你就挂了。        2. 想冒险的人, 可以考虑用realloc. 挂的可能性有,但不是很大。    ...

2014-03-28 00:02:50

阅读数 6240

评论数 0

原创 上次机试, 栽倒在求最值的问题上, 哎

上次机试, 有个大程序中有求最值这个环节,最后阴沟翻船, 哎。        为了简化, 我仅仅用伪代码来示意,我的程序为: int max = p[0]; int min = p[0]; int i = 0; for(i = 0; i < n; i++) { if(p[i] is ...

2014-03-27 23:43:54

阅读数 6152

评论数 0

原创 从抓包的角度来分析tcp建立时的三次握手(好几次笔试面试,都有tcp三次握手)

三次握手过程如下:                 来搭建一个网络环境:        利用CommView来抓包(因为它可以抓环回包包),开启它, 捕捉8888端口的包包。        服务端程序为: #include #include // winsock接口 #pragma com...

2014-03-27 23:32:01

阅读数 8812

评论数 0

原创 什么是抓包?为什么要抓包?

前面讲了抓日志,现在来聊聊抓包。这里讲的抓包,并不是说用手去挠你头上的包包。        我们来看一个初三的物理实验题目:            现在灯泡不亮, 请定位分析。            这个很好办啊,无非就是搞个电压表和电流表呗。            在与网络相关的问题...

2014-03-27 23:04:19

阅读数 47600

评论数 6

原创 为什么飞机上要安装黑匣子呢? 也谈程序中log和debugger的应用场景

最近飞机出了不好的事,我表示深深地哀悼。实时监控系统出了问题, 大家都在急忙找黑匣子这个black box, 因为black box中有飞机飞行的一些记录。         下面,我从软件开发的角度来探讨一下log(black box)和debugger的应用场景。          最开始学...

2014-03-26 23:40:09

阅读数 6719

评论数 0

原创 今天看到的一个有趣面试题:return *this和return this有什么区别?

别跟我说, return *this返回当前对象, return this返回当前对象的地址(指向当前对象的指针)。 正确答案为:return *this返回的是当前对象的克隆或者本身(若返回类型为A, 则是克隆, 若返回类型为A&, 则是本身 )。return this返回当...

2014-03-26 22:53:40

阅读数 30511

评论数 11

原创 void的两个奇葩用法

先看: int main() { int x; return 0; }      该程序会有warning, 可以改为如下: int main() { int x; (void)x; return 0; }      再看, 如下程序不会有warning void fun() { ...

2014-03-25 23:48:01

阅读数 6212

评论数 0

原创 TCP能检测到"断网""断电"事件吗(面试可以问倒很多人)?

我们知道, tcp的建立和拆除需要经历三次握手和四次挥手, 那么当客户端与服务器建立了tcp连接之后,突然断掉网线或者掉电, 两侧的tcp状态会有什么变化呢? 对于不了解tcp的人, 肯能会直接说: 能检测。 我曾经给出了一个貌似正确的答案: 不能检测。

2014-03-25 23:30:12

阅读数 16185

评论数 8

原创 为什么cpu要一心二用:浅谈多线程编程的一个具体例子

什么是多线程,多线程就是多个执行序列。就是让cpu执行下这个序列,又执行下那个序列,不停地切换, 正所谓一心二用。        考虑一个实际场景: 客户端要向服务端发送文件,服务端会对发送文件进行检查,如果文件的头信息非法,则立即通知客户端不必继续发送,那么这个场景应该怎么处理呢?       ...

2014-03-25 23:15:08

阅读数 8608

评论数 0

原创 127.0.0.1和0.0.0.0

先说0.0.0.0吧, 他是本机上所有IP的集合。 而127.0.0.1是本机的环回地址,我要说,这就是个鸡肋。       假设PC1(client)的IP为192.168.1.105, PC2(server)的IP为192.168.1.106, 现在考虑网络编程。       pc...

2014-03-24 00:07:42

阅读数 13454

评论数 0

原创 利用STL中的map来写一个自己的命令行界面

居然没有用过命令行?那你怎么会关注这篇文章呢?我晕。       你看,司机师傅安按个按钮,门就开了,按那个按钮, 就唱歌。 按钮实际对应一个命令,真正解析并执行这个命令的,是里面的函数。在windows的cmd中,输入一个命令,就可以执行对应的功能,那个黑色的界面会把人的想法传给系统,系统来...

2014-03-22 22:18:25

阅读数 6340

评论数 0

原创 ssh, telnet在发起什么连接请求?

先看一个服务器程序: #include #include // winsock接口 #pragma comment(lib, "ws2_32.lib") // winsock实现 int main() { WORD wVersionRequested; // 双字节,...

2014-03-19 23:12:12

阅读数 6228

评论数 0

原创 如何让recv函数有点脾气?(让你知道select函数的威力)

我们知道, recv是一个阻塞的函数,没有到数据的时候,会傻傻地等待数据。那么怎么让recv函数有点脾气, 不傻傻地等待呢?                   服务器为(先跑起来): #include #include // winsock接口 #pragma comment(lib, &q...

2014-03-17 23:59:30

阅读数 11642

评论数 5

原创 从netstat看网络编程

不想学网络编程的屌丝说: 我只有一台电脑,不能模拟服务端和客户端,没法进行网络编程; 或者说:我没有网络,没法进行网络编程。      其实,你只需要一台电脑即可, 没有联网也没有关系。靠!你没电脑?        在cmd中输入netstat -nao | findstr 8888, 然后回车,...

2014-03-16 23:53:40

阅读数 6661

评论数 2

原创 对象间是如何进行勾搭的?

什么是对象?在int a; 中, a就是对象。那么如何与对象a进行通信呢? 简单啊,且看程序: #include using namespace std; int a; int main() { a = 1; //往对象中写数据 cout << a <...

2014-03-16 22:39:53

阅读数 6087

评论数 0

原创 你能否真正搞定单例?

笔试面试让写个单例,不一定每个人都能搞出来。我们以前也谈论过单例,现在继续来看看:       可以写为: #include using namespace std; class A { private: int x; static A *pInstance; public: voi...

2014-03-16 00:27:58

阅读数 6171

评论数 0

原创 分割字符串遇到麻烦了? 也许你在找strrchr函数!

废话少说,直接上代码: #include using namespace std; int main() { char str[100] = "aacacbxcxybxxxxx"; char *p = strrchr(str, 'c'); if(...

2014-03-15 23:39:20

阅读数 5833

评论数 0

原创 memchr函数与strchr函数的区别

先看看原型吧: 原型:extern void *memchr(const void *buf, int ch, size_t count); 用法:#include 功能:从buf所指内存区域的前count个字节查找字符ch。 说明:当第一次遇到字符ch时停止查找。如果成功,返回指向字符ch的指...

2014-03-13 22:15:25

阅读数 7839

评论数 0

原创 select函数何时返回?

先运行一下如下代码: #include #include // winsock接口 #pragma comment(lib, "ws2_32.lib") // winsock实现 int main() { WORD wVersionRequested; // 双字节,...

2014-03-13 00:10:33

阅读数 6829

评论数 2

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