摘要: 首先是Scheduler,Handler和Event类的关系。在NS2中,事件(Event)是基本的调度单元,比如发送一个Packet、接收一个Packet等等。每个Event都有自己的处理工具,这个工具就是一个Handler类的对象handler_。Handler中仅包含一个函数,描述对Event的处理方法,即handle(Event *e)。给定一个事件,Scheduler将调用schedule(Handler* h, Event* e, double delay)函数,该函数设定Event的uid_,并设定用于处理该事件的Handler:e->handler_ = h,然后将该事件 阅读全文
posted @ 2012-03-03 12:52 leealways87 阅读(368) 评论(0) 推荐(0) 编辑
摘要: awk中并没有提供类似C语言fopen或者fprintf函数,但是awk的任何输出函数皆可以由Unix的I/O Redirection,将输出的资料重定位到指定文件,其符号为>或者>>。建立档案如下:tmp文件: 1 1034 7:26 2 1025 7:27 3 1101 7:32 4 1006 7:45 5 1012 7:46 6 1028 7:49 7 1051 7:51 8 1029 7:57 9 1042 7:5910 ... 阅读全文
posted @ 2012-03-02 19:17 leealways87 阅读(708) 评论(0) 推荐(0) 编辑
摘要: 1、数据文件格式如下: 1 0 1 2 3 4 5 6 ch1 2 0 1 4 3 4 5 6 ch3 3 0 1 2 3 4 5 6 ch2 4 0 1 3 3 4 5 6 ch1 5 0 ... 阅读全文
posted @ 2012-03-02 15:50 leealways87 阅读(276) 评论(0) 推荐(0) 编辑
摘要: uniquniq用来从一个文本文件中删除或者禁止重复行,一般uniq假定文件已经分类,并且结果正确。sort中的唯一性选项去除所有重复行,而uniq命令并不是这样。在uniq中,重复行是不断重复出现的行,中间不夹杂任何文本内容,如:1 May Day2 May Day3 May Day4 Going DOwn5 May Day6 May Day.7 May Dayuniq将前三行看作是重复行,第四行是不同文本,所以第五行的May Day将被保留。uniq命令的格式为:$ uniq -u d c -f input_file out_file各个选项的含义:-u : 只显示不重复行-d : 只显示 阅读全文
posted @ 2012-03-02 13:56 leealways87 阅读(853) 评论(0) 推荐(0) 编辑
摘要: 用#include可以包含其他头文件中变量、函数的声明,为什么还要extern关键字,如果我想引用一个全局变量或 函数a,我只要直接在源文件中包含#include<xxx.h>(xxx.h包含了a的声明)不就可以了么,为什么还要用extern呢??这个问题一直也是似是而非的困扰着我许多年了,今天上网狠狠查了一下总算小有 所获了:头文件首先说下头文件,其实头文件对计算机而言没什么作用,她只是在预编译时在#include的地方展开一下,没别的意义了,其实头文件主要是给别人看的。我做过一个实验,将头文件的后缀改成xxx.txt,然后在引用该头文件的地方用#include"xxx 阅读全文
posted @ 2012-01-05 19:31 leealways87 阅读(924) 评论(0) 推荐(0) 编辑
摘要: 1、方括号表达式在方括号表达式中,所有其他的mete字符(即元字符,特殊字符)都会失去其特殊含义。 eg:[*\.]匹配于字面上的星号、反斜杠和句点。 另外,要让 ] 进入该集合,可以将它防盗列表的最前面。1 >cat tmp 2 ab]cdef3 acdg4 cd5 a-g6 >grep []] tmp 7 ab]cdef如果有减号字符进入该集合,也应该放到最前端,如果两者都有 ,则将右方括号放到第一个字符,减号放到最后一个字符。2、后向引用BRE(在ERE中并不存在)提供了一种叫后向引用的机制(backreferences),意思是“匹配于正则表达式匹配的先前部分”。一共需要两 阅读全文
posted @ 2012-01-04 21:41 leealways87 阅读(210) 评论(0) 推荐(0) 编辑
摘要: #include <signal.h>#include <unistd.h>#include <stdio.h>#include "apue.h"static volatile sig_atomic_t sigflag;static sigset_t newmask, oldmask, zeromask;static voidsig_usr(int signo){ sigflag = 1;}voidTELL_WAIT(void){ if(signal(SIGUSR1, sig_usr) == SIG_ERR) err_sys(" 阅读全文
posted @ 2012-01-04 13:24 leealways87 阅读(661) 评论(0) 推荐(0) 编辑
摘要: Title: Implementing Software TimersBy: Don LibesOriginally appeared in the Nov. 1990 “C User’s Journal” and is alsoreprinted as Chapter 35 of “Obfuscated C and Other Mysteries”,John Wiley & Sons, 1993, ISBN 0-471-57805-3.http://www.wiley.com/compbooks/m3.html.——————————————————————— This column 阅读全文
posted @ 2012-01-04 10:41 leealways87 阅读(377) 评论(0) 推荐(0) 编辑
摘要: top是动态显示,ps是静态显示top 命令是最流行的性能监视工具之一,Linux新手必需了解。它是一个优秀的交互式工具,用于监视性能。它提供系统整体性能,但报告进程信息才是 top 命令的长处。本文将对Linux Top命令进行详细介绍,希望对Linux新手有所帮助。top 界面分为两个部份,光标上面部份显示关于系统整体性能,光标下面部份显示各进程信息。光标所在处是用来输入操作命令的。第一行显示的内容和uptime命令一样,【l】可以显示和隐藏这个区域:top: 这个没有什么意思,只是个名称而以01:47:56 : 系统当前时间up 1:26 : 系统开机到现在经过了多少时间2 u... 阅读全文
posted @ 2012-01-03 21:28 leealways87 阅读(209) 评论(0) 推荐(0) 编辑
摘要: sleep使进程一直挂起,直到满足一下两个条件之一:1、睡眠时间到时;2、调用进程捕捉到一个信号,并从该信号处理函数返回;以下是APUE中实现sleep函数的源码,坑爹的我看了半天才明白,受伤。 1 #include "apue.h" 2 #include <signal.h> 3 4 static void 5 sig_alrm(int signo) 6 { 7 8 } 9 10 unsigned int11 sleep(unsigned int nsecs)12 {13 struct sigaction newact, oldact;14 sigset_t 阅读全文
posted @ 2012-01-03 21:03 leealways87 阅读(802) 评论(1) 推荐(1) 编辑