linux0818.blogspot.com
我心无畏,源自于我心无知: 三月 2009
http://linux0818.blogspot.com/2009_03_01_archive.html
熊锋的博客 开源/宽容 http:/ linux0818.blogspot.com/. Http:/ linux0818.blogspot.com/. 做为链接后, E-mail:linux0818@gmail.com给我,我将将您的网址添加到本博客。 今天在做一个监视程序:创建一个进程,在父进程中死循环的监视着多个事件,而在子进程中只是打开一个输入、输出、错误的句柄后就退出了。呵呵,程序运行后,用ps -aux查看,居然出现好几个僵尸进程。后来打开程序一看,竟然发现子进程退出后,父进程没有给进程收尸。我们再看看下面这段话,会让我们更好的理解僵尸进程的产生及防范:. 2把父进程杀掉。父进程死后,僵尸进程成为"孤儿进程",过继给1号进程init,init始终会负责清理僵尸进程.它产生的所有僵尸进程也跟着消失。 从上面两段话,我们基本上能明白了僵尸进程的产生及消除了,下面我们来模拟一下僵尸进程的产生:. Int main(int argc, char * argv). If (0 = fork() {. Printf("In the child process:%d n", getpid() ;.
linux0818.blogspot.com
我心无畏,源自于我心无知: 十月 2008
http://linux0818.blogspot.com/2008_10_01_archive.html
熊锋的博客 开源/宽容 http:/ linux0818.blogspot.com/. Http:/ linux0818.blogspot.com/. 做为链接后, E-mail:linux0818@gmail.com给我,我将将您的网址添加到本博客。 此文的最近更新见于<http:/ broker.dhs.org/pcap.htm>. 好,让我们从看看这篇文章写给谁开始。显而易见的,需要一些C语言基础知识,除非你只想了解基本的理论。你不必是一个编码专家,因为这个领域只有经验丰富的程序员涉足,而我将尽可能详细的描述这些概念。另外,考虑到这是有关一个包嗅探器的,所以对网络基础知识的理解是有帮助的。所有在此出现的代码示例都已在FreeBSD 4.3平台上测试通过。 1我们从决定用哪一个接口进行嗅探开始。在Linux中,这可能是eth0,而在BSD系统中则可能是xl1等等。我们也可以用一个字符串来定义这个设备,或者采用pcap提供的接口名来工作。 5.在嗅探到所需的数据后,我们要关闭会话并结束。 第一种,我们可以简单的让用户告诉我们。考察下面的程序:. Char *dev = argv[1];.
linux0818.blogspot.com
我心无畏,源自于我心无知: 七月 2009
http://linux0818.blogspot.com/2009_07_01_archive.html
熊锋的博客 开源/宽容 http:/ linux0818.blogspot.com/. Http:/ linux0818.blogspot.com/. 做为链接后, E-mail:linux0818@gmail.com给我,我将将您的网址添加到本博客。 这样的定义看起来类似于普通的常量定义CONST,但也有着不同,因为define的定义更像是简单的文本替换,而不是作为一个量来使用,这个问题在下面反映的尤为突出。 Max(x,y) (x) (y)? 这个定义就将返回两个数中较大的那个,看到了吗?因为这个“函数”没有类型检查,就好像一个函数模板似的,当然,它绝对没有模板那么安全就是了。可以作为一个简单的模板来使用而已。 Add(a,b) a b;. 在一般使用的时候是没有问题的,但是如果遇到如:c * Add(a,b) * d的时候就会出现问题,代数式的本意是a b然后去和c,d相乘,但是因为使用了define(它只是一个简单的替换),所以式子实际上变成了. 本意是a和b都是int型指针,但是实际上变成int* a,b;. A(x) T # x. A(1)- - - 〉T 1.
linux0818.blogspot.com
我心无畏,源自于我心无知: 十二月 2008
http://linux0818.blogspot.com/2008_12_01_archive.html
熊锋的博客 开源/宽容 http:/ linux0818.blogspot.com/. Http:/ linux0818.blogspot.com/. 做为链接后, E-mail:linux0818@gmail.com给我,我将将您的网址添加到本博客。 Function: int StringMatch(char *buf, char *pattern, int type). Return: if regular expression match,return 1, else return 0;. Buf: need compare string;. Patttern: regular expression;. Type: if type=1,is regular expression compare,else if type=0 is string and string compare. Int StringMatch(char *buf, char *pattern, int type). Regex t pregex; /* regex */. If (0 = type) {. Printf("-...
linux0818.blogspot.com
我心无畏,源自于我心无知: 一月 2009
http://linux0818.blogspot.com/2009_01_01_archive.html
熊锋的博客 开源/宽容 http:/ linux0818.blogspot.com/. Http:/ linux0818.blogspot.com/. 做为链接后, E-mail:linux0818@gmail.com给我,我将将您的网址添加到本博客。 今天看了mingetty open source,在里面看到有uname这个函数能够获取一些我们有时需要的信息,如操作系统,版本,发行版,机器型号等等。现改了一下,帖出来,供大家分享。 Static void output special char(unsigned char c). Static struct utsname uts; / The struct in the sys/utsname.h . Printf("sysname:%s n", uts.sysname);. Printf("nodename:%s n", uts.nodename);. Printf("release:%s n", uts.release);. Printf("version:%s n", uts.version);. Time t cur time;.
linux0818.blogspot.com
我心无畏,源自于我心无知: 九月 2009
http://linux0818.blogspot.com/2009_09_01_archive.html
熊锋的博客 开源/宽容 http:/ linux0818.blogspot.com/. Http:/ linux0818.blogspot.com/. 做为链接后, E-mail:linux0818@gmail.com给我,我将将您的网址添加到本博客。 Http:/ packetmania.bokee.com/. 如何记住这两种存储模式?其实很简单。首先记住我们所说的存储单元的地址总是由低到高排列。对于多字节的数值,如果先见到的是低位的字节,则系统就是Little Endian的,Little 就是小,少的意思,也就对应低。相反就是Big Endian,这里 Big 大对应高。 Char a = 1;. Char b = 2;. Short c = 255; /* 0x00ff */ 0x0000: 01 02 FF 00. Long d = 0x44332211; 0x0004: 11 22 33 44. 纯Big Endian: Sun SPARC. 65292; Java Virtual Machine. Bi-Endian, 运行Big Endian模式: MIPS. Endianness对于网...
linux0818.blogspot.com
我心无畏,源自于我心无知: 四月 2009
http://linux0818.blogspot.com/2009_04_01_archive.html
熊锋的博客 开源/宽容 http:/ linux0818.blogspot.com/. Http:/ linux0818.blogspot.com/. 做为链接后, E-mail:linux0818@gmail.com给我,我将将您的网址添加到本博客。 65292;选择一个有流量的接口(有可能你有两个网卡——现在的笔记本一般都自带一个无线一个有线来着),然后点 Start. 12290;至于Option什么的不是本文重点,不表。 12288; 这个时候我们打开NetMeeting软件,开始打电话——至于Netmeeting里面网守或者网关的配置这里不做详细说明,想知道的话可以留言我发新贴。 12288; 通过下面这张图片,我们看到H.225协议相关的交互。——Display Filter的定义就是h225,h245,和rtp即可。 12288; 下面我们打开Stacistics - VoIP Calls页面,可以看到我们刚才产生的呼叫的详细信息。 12288; 首先需要一个叫做 RTP2WAVE. 订阅: 帖子 (Atom).
linux0818.blogspot.com
我心无畏,源自于我心无知: 转载:Endianness一点通
http://linux0818.blogspot.com/2009/09/endianness.html
熊锋的博客 开源/宽容 http:/ linux0818.blogspot.com/. Http:/ linux0818.blogspot.com/. 做为链接后, E-mail:linux0818@gmail.com给我,我将将您的网址添加到本博客。 Http:/ packetmania.bokee.com/. 如何记住这两种存储模式?其实很简单。首先记住我们所说的存储单元的地址总是由低到高排列。对于多字节的数值,如果先见到的是低位的字节,则系统就是Little Endian的,Little 就是小,少的意思,也就对应低。相反就是Big Endian,这里 Big 大对应高。 Char a = 1;. Char b = 2;. Short c = 255; /* 0x00ff */ 0x0000: 01 02 FF 00. Long d = 0x44332211; 0x0004: 11 22 33 44. 纯Big Endian: Sun SPARC. 65292; Java Virtual Machine. Bi-Endian, 运行Big Endian模式: MIPS. Endianness对于网...
linux0818.blogspot.com
我心无畏,源自于我心无知: 十一月 2008
http://linux0818.blogspot.com/2008_11_01_archive.html
熊锋的博客 开源/宽容 http:/ linux0818.blogspot.com/. Http:/ linux0818.blogspot.com/. 做为链接后, E-mail:linux0818@gmail.com给我,我将将您的网址添加到本博客。 Sudo gedit /etc/apt/sources.list. 打开universe 和 multiverse,然后在最后一行加入:. Deb http:/ ubuntu.beryl-project.org/. 2、接着安装xserver-xgl,beryl,emerald-themes:. Sudo apt-get install xserver-xgl. Sudo apt-get install beryl emerald-themes. 终端输入: beryl-manager 命令即可! 压缩文件的基本原理是查找文件内的重复字节,并建立一个相同字节的词典文件,并用一个代码表示,比如在文件里有几处有一个相同的词中华人民共和国用一个代码表示并写入词典文件,这样就可以达到缩小文件的目的. 由于计算机处理的信息是以二进制数的形式表示的,因...