自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(10)
  • 资源 (9)
  • 收藏
  • 关注

原创 僵尸进程(zombie)以及避免方法

僵尸进程在多进程环境下,父进程要长时间运行 ,期间可能创建子进程,然后子进程有退出时,但是父进程还在运行,这时就产生了zombie进程。    子进程退出后,在进程表中还要占一项,并且子进程的一些资源等待父进程回收。如果父进程没有显示地调用wait来为子进程回收资源的话,在父进程退出之前子进程就变成了僵尸进程。如果父进程退出了,僵尸子进程也消失了。        还有一

2011-12-15 11:33:01 285

原创 如何判断map容器的key是否存在

首先,不推荐使用[]来判断key是否存在,因为使用操作符[]会向map容器里插入一个元素。     map的operator[]重载大致是这样一个内容:         data_type&   operator[](   const   key_type&   k   )         {         value_type   v

2011-12-14 11:07:09 4101

原创 如何识别数据包编码

1.汉字utf8编码识别     utf8字符编码特征:     1字节:0xxxxxxx     2字节:110xxxxx 10xxxxxx     3字节:1110xxxx 10xxxxxx 10xxxxxx  (汉字一般落在这个区间)     4字节:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx     5字节:111110 xx 10 xx

2011-12-13 10:40:30 362

原创 如何识别数据包编码

1.汉字utf8编码识别     utf8字符编码特征:     1字节:0xxxxxxx     2字节:110xxxxx 10xxxxxx     3字节:1110xxxx 10xxxxxx 10xxxxxx  (汉字一般落在这个区间)     4字节:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx     5字节:111110 xx 10 xx

2011-12-13 10:38:43 1200

转载 linux的进程状态

1)进程的状态的概述:1.1)Running(R),运行或将要运行1.2)Interruptible(S),被阻断而等待一个事件,可能会被一个信号激活1.3)Uninterruptible(D),被阻断而等待一个事件,不会被信号激活1.4)Stopped(T),由于任务的控制或者外部的追踪而被终止,比如:strace1.5)Zombie(Z),僵死,但是它的父进程尚未调用wai

2011-12-07 21:19:33 771

原创 使用snprintf时的两点注意事项

使用snprintf函数时要注意两点,这是我看过无数使用这个函数的程序员绝大部分都存在的两点隐患: 比如:  char buf[LEN];           int n = snprintf(buf, LEN, "%s%d%s", str1, int2, str3);1.snprintf会自动在格式化后的字符串尾添加\0, 所有格式化长度,也就是第二个参数没有必要用LEN-1,

2011-12-07 21:10:48 470

原创 如何调试core文件

由于自己的粗心,这几天我的程序跑性能环境时出了很多core,测试部的小包包一向很喜欢收集core,但是收集了我又不会调试,直到今天看了赵总华丽的调试core之后,才知道原来一个core可以有这么丰富的信息。于是我也找了几个core小玩了一下,总结了调试core的常用命令。     调试一个core按照如下的步骤执行: 一.gdb 程序名 core名前提是应用程序编译时要加-g选项,

2011-11-29 20:36:55 545

原创 free空指针是安全的

之前忘了听谁说内核里free一个空指针是不行的,而且看了公司产品的代码发现free时都是调用了一个宏: #define VFREE_INIT(ptr)  \ do       \ {       \  if (ptr != NULL)  \  {      \   vfree(ptr);   \   ptr = NULL;   \  }      \ }

2011-11-19 14:31:55 968

原创 获取IP数据包中的ICMP段

根据TCP/IP协议,ICMP数据段紧跟在IP头部之后,所以获取ICMP头部的方法就简单了:      struct icmphdr* icmph = (struct icmphdr*)((unsigned char*)iph + iph->ihl*4);    得到ICMP段的起始指针之后,还要得到它的数据段长度,长度就用总的数据包长度减去IP头和ICMP头:

2011-11-15 08:59:26 478

原创 waitpid是会阻塞的

刚写个demo程序验证了一下,waitpid是会阻塞的,当然它可以设置成非阻塞模式,通过设置WNOHANG选项。    我的demo程序的思路是这样的,主进程fork两个子进程,第二个子进程延迟1s结束,主进程调用两个waitpid,先等待子进程2,再等待子进程1 。    测试结果,子进程2结束后第一个waitpid才会返回。#include #include

2011-11-14 09:20:06 912

用巧妙方法 输出菱形

运用数学方法,用简单的几行代码就可以输出菱形

2010-01-06

c++课设矩阵的操作

关于矩阵的各种操作,运算,包括计算对角线和,一个数周围8个数的和等等

2010-01-06

数据结构实验程序(包括链表 查找)

一共3个程序,分别是单链表的顺序查找,回文判断,顺序表的折半查找

2010-01-06

数据结构稀疏矩阵运算

这个是我从我一神秘学姐那里要过来的,绝对精彩,不容错过

2009-12-18

日历(c++语言实现)

用c++做的日历系统,能显示几百万年的日历,附源代码

2009-12-18

一个c++课程设计附文档

【课程设计】题目: 超长整数的加、减、乘、除运算。可以进行两个200位以下的整数的加、减、乘、除运算。例如:输入两个长整数,可计算并显示它们的积。

2009-12-18

windows编程 PV操作 直观实现生产者与消费者

用最简单的方式实现windows中的pv操作,让读者一目了然

2009-12-07

用匿名管道实现进程之间通信

mfc文件,需先建立相应的菜单,内附具体做法

2009-11-18

生产者与消费者问题(C++实现PV操作)

在很多网站上都没找到,所以自己做了个发出来,希望大家给出意见

2009-10-20

空空如也

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

TA关注的人

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