51CTO博客开发
转自百度http://hi.baidu.com/yaruolin/blog/item/af3737861450a53966096e2b.html在cmd下面输入route print 就可以查看路由表 如何读懂路由表如何读懂路由表 源码:--------------------------------------------------------------------------------A
看新定的测试覆盖率标准,有点晕。1、语句覆盖率达到100%2、分支覆盖率不低于70%开始觉得,这两个限制有点矛盾,语句覆盖率都达到100%了,分支覆盖率还没达到100%?答案:是。举个例子说明: if A and B then Action1 if C or D then Action2 就拿这个来说,A=true B=true C=true,语句覆盖率是100%,可分支
select 中的DISTINCT用法 在 使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用 它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了 很久,用distinct不能解决的话,我只有用二重循环查询来解决
进程 系统中程序执行和资源分配的基本单位 每个进程有自己的数据段、代码段和堆栈段 在进行切换时需要有比较复杂的上下文切换线程 减少处理机的空转时间,支持多处理器以及减少上下文切换开销, 比创建进程小很多 进程内独立的一条运行路线 处理器调度的最小单元,也称为轻量级进程可以对进程的内存空间和资源进行访问,并与同一进程中的其他线程共享线程 线程相关的执行状态和存储变量放在线程控制表内
unless在if 控制结构中,只有条件为真时,才执行块中的代码。如果你想在条件为假时执行,可以使用unless:除非条件为真,否则执行块中的代码unless($fred =~ /^[A-Z_]\w*$/i){print “The value of \$fred doesn’t look like a Perl identifier name.\n”;}unless 和else 语句一起使用unl
相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助. 而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。因此在这里详细解释一下这两个过程。TCP三次握手所谓三次握手
1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float max( floa
perl作为一种解释性的语言,很受广大系统管理员的欢迎,好处么就不多说了,坏处也有不少,例如对线程的支持,就一直不咋地,所以大多数情况下,我们都需要多个进程,来帮助我们完成工作,闲话少说,上代码。#!/usr/bin/perl# test_proc.pl# test multi process# create by lianming: 2009-08-12use strict;use
#!/usr/bin/perl#serveruse strict;use Socket;use IO::Handle;use POSIX ":sys_wait_h";my($this, $now);my $port = shift || 29688;my $address=inet_aton("0.0.0.0");$this =sockaddr_in($po
1234567eval{local$SIG{ALRM} = sub{ die"alarm time out"};alarm$TIMEOUT;$sock->recv($msg, $MAXLEN) or die"recv: $!";alarm0;1; # return value from eval on
在socket通信编程时,我们会往往假设TCP报文传输的排列是很紧密的,收完一个接着就是下一个,但是事实不是这样的。可能一般是紧密的,但是有个别情况出现,所以就出现了经典的接收信息的写法:以报头标量的总长度为条件,判断剩下的待接收内容的长度。下面是一个我自己定义的接收子函数:目的是从sock内接收$leng个长度的字符,返回读出的字符串变量:#### This function is made f
正则表达式的新手经常将贪婪匹配和最小匹配理解错误。默认情况下,Perl 的正则表达式是“贪婪地”,也就是说它们将尽可能多地匹配字符。下面的脚本打印出“matched defgabcdef”,因为它尽可能多地匹配模式,直至结尾的‘g’。$data = 'abcdefgabcdefg';$data =~ /abc(.+)g/i;print "matched ";要改
一、Expect模块安装通过安装Perl的Expect模块可以方便的实现远程主机自动登入和执行命令的功能。由于Expect模块依赖于IO::Tty模块,所以要使用Expect模块需要安装这2个模块:(1)IO-Tty-1.10 (2)Expect-1.21具体的安装模块很简单,和以前一样:perl Makefile.PL/make/make test/make install。二、Expect模块
IO::Select模块IO::Select模块[b]IO::Select[/b]系统调用select的面向对象接口use IO::Select;$s = IO::Select->new();$s->add(\*STDIN);$s->add($some_handle);@ready = $s->can_read($timeout);@ready = IO::Select-&
pl脚本异常:bad interpreter: No such file or directory在Linux中执行QAC测试,make qac在执行pl文件脚本时,发生异常/usr/bin/perl: bad interpreter: No such file or directory。 分析:这是不同系统编码格式引起的:在windows系统中编辑的.pl文件可能有不可见字符,所以在Linux系
/usr/bin/perl^M: bad interpreter: No such file or directory 今天执行 ./shuffleSequences.pl 遇到 /usr/bin/perl^M: bad interpreter: No such file问题,在网上找了找英文和中文的问题决。说法挺多。用vi shuffleSequences.pl 有的第一行是#!/u
Perl中的程序注释:单行注释和多行注释(一)单行注释:以#开头的行都被perl认为是注释。但是有一个例外,perl程序的第一行是#开头的,他指定了perl程序的解释器。例如:#print 1;(二)多行注释:最常用的方法是使用 POD(Plain Old Documentations) 来进行多行注释。方法如下:=podcodes to comment=cut注意:=pod =cut只能在行首以
\w 表示匹配大小写英文字母、数字以及下划线,等价于'[A-Za-z0-9_]'。\S 表示匹配非空白字符,范围可广了,只要不是空格、换行符、制表符、换页符即可你举的例子看不出区别,但你试试 my $names = "Fred and Bar-ney"; 就看出来了\w 不包括 :;"'+-*/@# 这些... 只有 [a-zA-Z0-9_]\
平衡二叉树(Balanced binary tree)是由阿德尔森-维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树。定义:平衡二叉树或为空树,或为如下性质的二叉排序树:(1)左右子树深度之差的绝对值不超过1;(2)左右子树仍然为平衡二叉树.平衡因子BF=左子树深度-右子树深度.平衡二叉树每个结点的平衡因子只能是1,0,-1。若其绝对
哈夫曼树(Huffman Tree),又叫最优二叉树,指的是对于一组具有确定权值的叶子结点的具有最小带权路径长度的二叉树。(1)路劲(Path):从树中的一个结点到另一个结点之间的分支构成两个结点间的路径。(2)路径长度(Path Length):路径上的分支树。(3)树的路径长度(Path Length of Tree):从树的根结点到每个结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树
在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。一早期的内存分配机制在 早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算 机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当程序同时运行多个程序时,操作系统是
死锁的条件互斥条件(Mutual exclusion) :资源不能被共享,只能由一个进程使用。请求与保持条件(Hold and wait):进程已获得了一些资源,但因请求其它资源被阻塞时,对已获得的资源保持不放。不可抢占条件(No pre-emption) :有些系统资源是不可抢占的,当某个进程已获得这种资源后,系统不能强行收回,只能由进程使用
# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时
一、进程间通信概述进程通信有如下一些目的:A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。D、资源共享:多个进程之间共享同样的资源。为了作到这一点,需要内核提
很想写点关于多进程和多线程的东西,我确实很爱他们。但是每每想动手写点关于他们的东西,却总是求全心理作祟,始终动不了手。今天终于下了决心,写点东西,以后可以再修修补补也无妨。一.为何需要多进程(或者多线程),为何需要并发?这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性。我想,只要你不是整天都写那种int main()到底的代码的人,那么或
归并排序是利用递归和分而治之的技术将数据序列划分成为越来越小的半子表,再对半子表排序,最后再用递归步骤将排好序的半子表合并成为越来越大的有序序列,归并排序包括两个步骤,分别为: 1)划分子表 2)合并半子表 首先我们来讨论归并算法,归并算法将一系列数据放到一个向
一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: #ifdef标识符 程序段1 #else 程序段2 #endif 它的作用是:当标识符已经被定义过(一般是用#d
直接选择排序(Straight Selection Sort)1、直接选择排序的基本思想 n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果: ①初始状态:无序区为R[1..n],有序区为空。 ②第1趟排序 在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变
经典排序算法 - 希尔排序Shell sort经典排序算法 - 希尔排序Shell sort希尔排序Shell Sort是基于插入排序的一种改进,同样分成两部分,第一部分,希尔排序介绍第二部分,如何选取关键字,选取关键字是希尔排序的关键第一块希尔排序介绍准备待排数组[6 2 4 1 5 9]首先需要选取关键字,例如关键是3和1(第一步分成三组,第二步分成一组),那么待排数组分成了以下三个虚拟组:[
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号