维护过后狗R的依旧犀利。测试结果

社区服务
高级搜索
猴岛论坛综合游戏交流维护过后狗R的依旧犀利。测试结果
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
36个回复

维护过后狗R的依旧犀利。测试结果

楼层直达
大腦缺氧

ZxID:9902648

等级: 准尉
我不是脑残,只是有点缺氧
举报 只看楼主 使用道具 楼主   发表于: 2010-01-20 0
-r, -w, -x, -o: 测试文件或目录对当前有效的用户或组(即当前负责运行程序的“人”)是否可读、可写、可执行或所拥有。
}&k R(f w Z e#v0-R, -W, -X, -O: 测试文件或目录对实际的用户或组是否可读、可写、可执行或所拥有。51Testing软件测试网 q @'D7z j*P g z _
-O和-o只测试用户标识符,不测试组标识符。
e f W E a ~l't0+文件类型测试51Testing软件测试网2A d C E M+^ `
-f, -d, -l, -S, -p, -b, -c: 测试文件句柄是否为普通文件、目录、符号链接、Socket、pineline、块设备、字符设备
,M8[/w*d C ^0-T: 测试文件是否看起来像文本文件
0x P N2O*S7f/v0-B: 测试文件是否看起来像二进制文件
+E5d:F ~ [&p+O0Perl会打开文件,检查开头的几千个字节。如果有很多空字节、控制字符和设定了高位(第八位为1)的字节,那么该文件看起来像二进制文件。如果很平常,那么该文件看起来像字节文件。对于很多非ASCII码的字符集, Perl可能会猜错。51Testing软件测试网)[ E"I I(v P V
如果文件不存在,-T和-B都会返回假;如果文件为空,-T和-B都会返回真。51Testing软件测试网)D B0~4J*f7f6E
-t: 测试文件句柄是否为具有交互能力的tty设备,如STDIN(键盘)。普通的文件和管道没有交互的能力。51Testing软件测试网 \ ] r'[ }6J \ ^
+文件存在性测试51Testing软件测试网 C V c'o J!] | c
-e, 测试文件或目录是否存在51Testing软件测试网'b)m M k9[
die "Opps! A file called '$filename' already exists.\n" if -e $filename;
&D(} E9Y)SD K e0-z, 测试文件是否存在并且没有内容,对目录来说永远为假51Testing软件测试网 W P:r g U w+Q
-s, 测试文件或目录是否存在,并返回文件大小(以字节为单位)
P c O:` c1{3Z0+文件时间戳测试
B Q | x.D)J t&D h n G \0-M, -A, -C测试文件最后被修改、最后被访问、inode被改变(有的系统指文件创建)到现在的天数,这个时间值为浮点数。
Z R Q"cc Z R0检查时间的原点为程序开始运行的时刻,这取决于变量$^T的值,可以修改这个变量。
/X3A Z%c c ^ ~ }0如果某个天数为负数,说明那个程序已经运行了一段时间,才找到某个刚刚才被访问到的文件,或者这个文件的时间戳被设置成了未来时间。51Testing软件测试网 Y0B6{;_ [7~ J%I3Q
warn "Config file is looking pretty old!\n"
[ H f m*x2i-{0if -M CONFIG > 28;51Testing软件测试网 ? u m P n Y f D._
my @original_file=qw/ ... /;
F1`_ |&a a0my @big_old_files;
!m/@3G"N1X ^ v Y0foreach my $filename(@original_file) {51Testing软件测试网 l"n S5P j | |.L O B E
push @big_old_files, $filename
^ L0Y2P H3a E0    if -s $filename > 100_000 and -A $filename > 90;
&U6o!c5P L ?0}51Testing软件测试网 q \ G g5z a$w ^
+文件其他属性测试51Testing软件测试网-i { Y j ]6i
-u, -g, -k测试文件或目录是否设置了setuid、setgid、sticky位51Testing软件测试网'h,h+m M-E d
如果文件测试操作符后面没有写文件名或文件句柄,默认参数是$_里的文件名称。51Testing软件测试网'P0@&N v Q A2e l
foreach (@lots_of_filenames) {51Testing软件测试网5M N } M X F:a
print "$_ is a readable\n" if -r;51Testing软件测试网 H ^ V'E:{2N-J d&k
my $size_in_KB= (-s) / 1024;51Testing软件测试网2e3u K m a X7l)G
#-s必须加上(),否则会把/ 1024也当成参数的一部分
_ M{ y p3[ R v:\ H0 ...51Testing软件测试网 h;r O-U C A
}
q:X n8o$? S051Testing软件测试网%P F!L s o9C | L
+stat和lstat函数51Testing软件测试网 J$~ i V-P `-h w
通过stat函数来获取文件的详细信息。51Testing软件测试网,]&y b T4v ^ x N
参数:文件名或文件句柄,默认参数:$_
q#a P u m s k b `8U0返回值:含有13个元素的列表或空列表(此时函数执行失败),若底层系统调用失败,则返回undef51Testing软件测试网7l c0A#y a/r)F(r0u V Q
my($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $blocks)=stat($filename);
Z c#t1v#z t p6y \0$dev和$ino: 文件的设备编号和inode编号,其组合独一无二。51Testing软件测试网)X%E:|:L X m
$mode: 文件的权限位组合,用八进制数字表示
C d o { O ~.{ w @0$nlink:文件或目录的(硬)链接数目51Testing软件测试网8G7U$M t&Y6V K z d
$uid, $gid: 不说了51Testing软件测试网4a%| p d Y.H1j g
$size: 同-s的返回值
` K4t C&k,v0d G a _0$atime, $mtime, $ctime: 三种时间戳,以系统的时间格式表示,32位整数,表示从纪元(Epoch,计量系统时间的基准点)开始计算的秒数。在Unix系统中,纪元为1970年世界标准时间的午夜。怎样把时间戳的值转换成我们常用的时间格式?51Testing软件测试网 R+J+X m F ~
对符号链接的名称使用stat函数,返回的是该链接所指对象的信息。若要返回符号链接本身的信息,使用lstat函数。如果lstat的参数不是符号链接,它会返回同stat一样的信息。51Testing软件测试网 T$T u4E d x N-i

4[ N `;a l;p0+localtime函数51Testing软件测试网 [%u6A I A ? k
标量上下文51Testing软件测试网!K n p f J&_2` n `c
my $timestamp=1180630098;51Testing软件测试网 h3f#b,c J!X K Q
my $date=localtime $timestamp;
w*H#\!e R0#把时间戳转换为可读的时间字符串:
:\'T(M*i ` x B V0#Fri Jun 1 00:48:18 20071851Testing软件测试网(a p/i-D/q,E+e
列表上下文51Testing软件测试网*u T W C R H W
my ($sec, $min, $hour, $day, $mon, $year, $wday, $yday, $isdst)=localtime $timestamp;
c,g V e G d.O R H0#18,48,0,1,5,107,5,151,051Testing软件测试网 i(}D Y Z x T r
$mon从0到11,$year从1900年算起的年份, $wday从0到6,$yday从0到364(365)。
h1J j x8B;I*{5K0my $date=localtime; #默认情况下返回系统当前时间
6f t({*p d^ g h#u0my $date=gmtime; #默认情况下返回系统当前时间(世界标准时间)
l {'C,f9y `(@ Y3|'q A R0my $date=time; #默认情况下返回系统当前时间的时间戳51Testing软件测试网 L h E0M D9a ]%?$q
#使用Time::Local模块中的timelocal函数,用年月日等信息获
P:A {)H o u l4e0#得对应的时间戳51Testing软件测试网2S ^o%k/Vw
use Time::Local;

my $time=timelocal($sec,$min,$hr,$day,$mon,$yr);
)P%X3W }+G"~ j t g051Testing软件测试网5? l7f+j @ k&O N
+逐位运算操作符(bitwise operator)
&G!_#R,c f)r010 & 12 = 8: 逐位and,先把操作数转换为二进制,再进行运算
f [/@ Y3S f.h2g o010 | 12 = 14: 逐位or
/@ H W$l*e2F/S$S$M P010 ^ 12 = 6: 逐位xor(异或)
U s I w O06 << 2 = 24: 将左操作数逐位左移(右操作数)位,用0补足最低位 000110 -> 01100051Testing软件测试网6A5I7s#V W ~
25 >> 2 = 6: 将左操作数逐位右移(右操作数)位,丢弃移出的最低位 011010 -> 000110
(c6X I L k m#E6]0~10 : 逐位取反,也称为取1的补码 00001010 -> 11110101(0xf5)51Testing软件测试网 O d B4^)n P.s \
#$mode是stat函数从配置文件返回的值
U n#x u ~ X s S f0warn "The configuration file is world-writable!\n"
.j-O F S,c"u R S;~ Q0 if $mode & 0002; 51Testing软件测试网 bH _1O } S ` S
#配置文件对所有用户可写,安全性有问题
5g { q ^ i | m d0 my $classical_mode=0777 & $mode; #屏蔽最高位
-Q m Z v q F0 my $u_plus_x=$classical_mode | 0100;
2L0z0W0T c%D G'`0 #将owner执行权限位设为151Testing软件测试网,w'@ g;Q v)O ]
my $go_minus_r=$classical_mode & (~0044);
_5[ d @ S g4_0 #把两个位设为051Testing软件测试网'v U'U l O O"Q
逐位运算操作符的操作数可以是位字符串(Perl对长度没有限制),也可以是整数(至少32位)。51Testing软件测试网 a)\ O a t4v7| @
"\xAA" | "\x55" = "\xFF"51Testing软件测试网 d N(|5V6X&X5k p`
51Testing软件测试网 w K k8@:a w2^
+下划线文件句柄(需要进一步深入理解)51Testing软件测试网0]!x ?.b6G S tg
程序里每次使用stat, lstat, 或某个文件操作符时,Perl必须向系统请求该文件的stat缓冲区(这实际上是stat系统调用返回的缓冲区)。
2o-E"m @0L._/@#L B ~0用_文件句柄做参数,Perl从内存中找出前一次文件测试,stat,lstat的参考信息,而不是向系统再要一次数据。可以减少不必要的系统调用,使程序的运行速度更快。需要注意的是,可能某个子例程内部调用过stat,将预期的缓冲区的内容覆盖。
I.Z!^ I+z4r ^*C0my @original_files=qw/ fred barney betty wilma /;51Testing软件测试网 D A5o ] e }
my @big_old_files; #要做备份的文件列表51Testing软件测试网 X q Y U!|4R j k ` k i p J
foreach (@original_files) {
v n I l X L `0 push @big_old_files, $_
N Q v"W u ~ G x;v O2}0    if (-s) > 100_100 and -A _ > 90;
v I1? L's I0    #buf.st_size > 100000 && buf.st_atime > 9051Testing软件测试网4[ B ` G y
    #第二个测试使用了第一个测试留下来的数据
6I5V+p7c q,~ j M0}

参考:stat/lstat系统调用51Testing软件测试网 C7J.y*j%m i4c G2P7]5Y H
#include <sys/types.h>
(] ~0Q/C c I0#include <sys/stat.h>
W G:x9D J Q5M c:u0#include <unistd.h> 51Testing软件测试网 y8G O E A1x
51Testing软件测试网9y h-G:p L c-t z"A
int stat(const char *path, struct stat *buf); 51Testing软件测试网,x(p h6[%K+c0H X
int fstat(int filedes, struct stat *buf);
6QT$d(X2["x d.s0int lstat(const char *path, struct stat *buf);
O"a H7m2ZN!W i P J V0
k1V3G-C%R h r0参数: 51Testing软件测试网,\9a%s x"k'a ~
path:文件路径名。 51Testing软件测试网 L%[#x&U5V M K w2l t N
buf:是结构体stat的指针51Testing软件测试网 w | v+d ]!F t z i2]$X

P"G9a A s,x(p A M0返回值:
W ` a ^7O;p0成功执行时,返回0。失败返回-1。有相应的错误码。
m _ G/p a051Testing软件测试网#d0w N G _ Z Z C S
struct stat {
9Z T7a D&o&z O0  dev_t    st_dev;    /* 文件所在设备的标识 */
'R P z3N }+e0    ino_t    st_ino;    /* 文件结点号 */ 51Testing软件测试网0z ^ o ? u4? l _
  mode_t    st_mode;    /* 文件保护模式 */ 51Testing软件测试网"u6C;u b K v u:H D8H
  nlink_t  st_nlink;  /* 硬连接数 */
3`0i e S j Z n(r t0  uid_t    st_uid;    /* 文件用户标识 */
+r't W J `*S'H/R4t0  gid_t    st_gid;    /* 文件用户组标识 */ 51Testing软件测试网7O.N P+G C1J3V6t
  dev_t    st_rdev;    /* 文件所表示的特殊设备文件的设备标识 */ 51Testing软件测试网+f e J;h f
  off_t    st_size;    /* 总大小,字节为单位 */
c!a s5O'p G J0  blksize_t st_blksize; /* 文件系统的块大小 */
Z s P8F0K:u Y0  blkcnt_t st_blocks; /* 分配给文件的块的数量,512字节为单元 */
o H/f(a F y/M4{5Q C V0  time_t    st_atime;  /* 最后访问时间 */
I j*V-v4h ~&{ ^ x `0  time_t    st_mtime;  /* 最后修改时间 */
i @ n e"G P9O E$F0  time_t    st_ctime;  /* 最后状态改变时间 */
;S._$s W n W3`:D }0};
n R c;o _3U F0
w!@ o y a!S:j N:z i0习题2 Which is the oldest file?51Testing软件测试网 j Z7h K'X ~5` P$~!Z
51Testing软件测试网 V k,b K [
#!/usr/bin/perl -w

use strict;

if (@ARGV==0) {51Testing软件测试网 m5w F f u4v3[
print "Usage: ./file_test arg1, arg2, ...","\n";51Testing软件测试网2s;[ J H~4Z9n y A s
} else {
R x+k d ? h W;f)i y0 my @file_info=stat($ARGV[0])
.R a z V { ? g0    or die "Cannot obtain the info data of $ARGV[0]";51Testing软件测试网 j z N6W _$J ^W Z
my $longest_life=$file_info[10];
Y&H#W } J0N \ V ~ Y9c0 my $oldest_file=$ARGV[0];
mt)J+x B9c G L l0 foreach (@ARGV) {
])P)d \.@ [ R!{0    @file_info=stat($_)
E Z4W N Q2J { v8M0      or die "Cannot obtain the info data of $_";
7L @!v&e.\7M E+z9Y w0    if ($longest_life>$file_info[10]) {51Testing软件测试网 s j0V U'|
      $longest_life=$file_info[10];51Testing软件测试网 N*?7? _-a } d k
      $oldest_file=$_;51Testing软件测试网 k K w B'S
    }
X ~ s o `0 }51Testing软件测试网 B1t _1_ w-D j b Z
my $now=time;51Testing软件测试网$j R U8v f Y3e
my $day=($now-$longest_life)/(60*60*24);51Testing软件测试网1K:[%l P#N8?5Q0y k N
print "The oldest file in your specified ones is $oldest_file.\n";51Testing软件测试网,^6V6n%N%a \'H1B H
print "It has been already alive $day day(s).\n";
5A-~ J N&O0}


文件测试操作符
操作符 描述
-b 是否为块设备
-c 是否为字符设备
-d 是否为目录
-e 是否存在
-f 是否为普通文件
-g 是否设置了setgid位
-k 是否设置了sticky位
-l 是否为符号链接
-o 是否拥有该文件
-p 是否为管道
-r 是否可读
-s 是否非空
-t 是否表示终端
-u 是否设置了setuid位
-w 是否可写
-x 是否可执行
-z 是否为空文件
-A 距上次访问多长时间
-B 是否为二进制文件
-C 距上次访问文件的inode多长时间
-M 距上次修改多长时间
-O 是否只为“真正的用户”所拥有
-R 是否只有“真正的用户”可读
-S 是否为socket
-T 是否为文本文件
-W 是否只有"真正的用户"可写
-X 是否只有"真正的用户"可执行


のの、ies

ZxID:10260085

等级: 中尉
/   扯 不 断 红 尘 纠 结 路 、
举报 只看该作者 沙发   发表于: 2010-01-20 0
sf?
hh3224100

ZxID:10144352

等级: 上等兵
举报 只看该作者 板凳   发表于: 2010-01-20 0
复杂啊,完全看不懂
ㄗs灬喤孑▓

ZxID:9891952

等级: 大尉
神。不过也是我的手下败将。
举报 只看该作者 地板   发表于: 2010-01-20 0
完全不懂。
权威人士

ZxID:9688777

等级: 下士
.嗯。  愛是深深的喜欢 !
举报 只看该作者 4楼  发表于: 2010-01-20 0
你拉倒吧。

  100%不和谐我头给你。
洪武门下,英才辈出。
°逝然陌づ

ZxID:10251663

等级: 大元帅
                      

举报 只看该作者 5楼  发表于: 2010-01-20 0
从哪复制来的啊? 那个论坛的干扰码都没去掉
qingqinmei77588

ZxID:10031587

等级: 列兵
举报 只看该作者 6楼  发表于: 2010-01-20 0
传说中的高手。。。???
权威人士

ZxID:9688777

等级: 下士
.嗯。  愛是深深的喜欢 !
举报 只看该作者 7楼  发表于: 2010-01-20 0
高手?
要么高要、赵高。
洪武门下,英才辈出。
jiahaoran617

ZxID:10074882

等级: 准尉
举报 只看该作者 8楼  发表于: 2010-01-20 0
和谐100%别和谐VG
xiechao0357

ZxID:9959052

等级: 少校
谢超美子,你只是个女儿身。

举报 只看该作者 9楼  发表于: 2010-01-20 0
煞笔``不懂软件就别他妈胡发``你这只会骗看不懂的人``纯粹煞笔一个``
Zee丶Life

ZxID:8932730

等级: 少校
~
举报 只看该作者 10楼  发表于: 2010-01-20 0
- -...
      太复杂,,
[[img][/img]
JSYXCC2006

ZxID:10219185

等级: 上尉
举报 只看该作者 11楼  发表于: 2010-01-20 0
什么掉毛东西
http://s1.images.houdao.com/11884/10/02/06/172_10460900_e4317ffd43eaf4b.jpg
wjandy1

ZxID:9810677

等级: 下士
举报 只看该作者 12楼  发表于: 2010-01-20 0
我晕 什么东西啊 !怎么看不懂?
陪n1丶看日落

ZxID:10277880

等级: 少将

举报 只看该作者 13楼  发表于: 2010-01-20 0
你发这个 什么意思都不懂 还有不要在制造外挂啦.!
儍犇

ZxID:10261159

等级: 少尉
有什么不开心的事说出来让大家开心一下
举报 只看该作者 14楼  发表于: 2010-01-20 0
这些是什么东东
如果我能够看到我的背影,我想它一定很忧伤,因为我把快乐都留在了前面!
wangching2

ZxID:10264594

等级: 少将
这家伙很懒,什么也没留下

举报 只看该作者 15楼  发表于: 2010-01-20 0
纯粹sb
其实不想走,其实我想留
留下来陪你每个春夏秋冬
w469885480

ZxID:10266778

等级: 上尉
举报 只看该作者 16楼  发表于: 2010-01-20 0
  神经病也
丿殇灬

ZxID:8504713

等级: 上校
    ,我爱你的你爱他

举报 只看该作者 17楼  发表于: 2010-01-20 0
喷了
蔡大妈

ZxID:10185968

等级: 中尉
举报 只看该作者 18楼  发表于: 2010-01-20 0
很好 很牛逼 你自己看懂了吗
獨↘纞ㄣ

ZxID:10259777

等级: 少尉
哥不帅,哥也不是传说

举报 只看该作者 19楼  发表于: 2010-01-20 0
给真?
« 返回列表
发帖 回复