本文和大家重点学习一下Perl文件属性函数的概念,Perl文件重定位函数,链接和符号链接函数,Perl文件许可权函数和其他属性函数等内容,希望通过本文的学习你对Perl文件属性函数有明确的认识。
Perl文件属性函数
1、Perl文件重定位函数
函数名rename
调用语法rename(oldname,newname);
解说改变Perl文件名或移动到另一个目录中,参数可为字符串或表达式。
函数名unlink
调用语法num=unlink(filelist);
解说删除Perl文件。参数为Perl文件名列表,返回值为实际删除的Perl文件数目。
此函数之所以叫unlink而不叫delete是因为它实际所做的是删除Perl文件的链接。
2、链接和符号链接函数
函数名link
调用语法link(newlink,file);
解说创建现有Perl文件的链接--硬链接,file是被链接的Perl文件,newlink是被创建的链接。
成功返回真,失败返回假。
当删除这两个链接中的一个时,还可以用另一个来访问该Perl文件。
函数名symlink
调用语法symlink(newlink,file);
解说创建现有Perl文件的符号链接,即指向Perl文件名,而不是指向Perl文件本身。参数和返回值同上。
当原Perl文件被删除(如:被unlinke函数删除),则被创建链接不可用,除非再创建一个与原被链接的Perl文件同名的Perl文件。
函数名readlink
调用语法filename=readlink(linkname);
解说如果linkname为符号链接Perl文件,返回其实际指向的Perl文件。否则返回空串。
3、Perl文件许可权函数
函数名chmod
调用语法chmod(permissions,filelist);
解说改变Perl文件的访问权限。参数为:
1、permissions为将要设置的权限,其含义见上述mkdir中权限表
2、filelist为欲改变权限的Perl文件列表
函数名chown
调用语法chown(userid,groupid,filelist);
解说改变Perl文件的属主,有三个参数:
1、userid:新属主的(数字)ID号
2、groupid:新的组(数字)ID号,-1为保留原组
3、filelist:欲改变属主的Perl文件列表
函数名umask
调用语法oldmaskval=umask(maskval);
解说设置Perl文件访问权限掩码,返回值为当前掩码。
4、其它属性函数
函数名truncate
调用语法truncate(filename,length);
解说将Perl文件的长度减少到length字节。如果Perl文件长度已经小于length,则不做任何事。其中filename可以为Perl文件名,也可以为Perl文件变量
函数名stat
调用语法stat(file);
解说获取Perl文件状态。参数file可为Perl文件名也可为Perl文件变量。返回列表元素依次为:
Perl文件所在设备
内部参考号(inode)
访问权限
硬链接数
属主的(数字)ID
所属组的(数字)ID
设备类型(如果file是设备的话)
Perl文件大小(字节数)
最后访问时间
最后修改时间最后改变状态时间
I/O操作最佳块大小
分配给该Perl文件的块数
函数名lstat
调用语法lstat(file);
解说与stat类似,区别是将file看作是符号链接。
函数名time
调用语法currtime=time();
解说返回从1970年1月1日起累计秒数。
函数名gmtime
调用语法timelist=gmtime(timeval);
解说将由time,stat或-A和-MPerl文件测试操作符返回的时间转换成格林威治时间。返回列表元素依次为:
秒
分钟
小时,0~23
日期
月份,0~11(一月~十二月)
年份
星期,0~6(周日~周六)
一年中的日期,0~364
是否夏令时的标志
详见UNIX的gmtime帮助。
函数名localtime
调用语法timelist=localtime(timeval);
解说与gmtime类似,区别为将时间值转换为本地时间。
函数名utime
调用语法utime(acctime,modtime,filelist);
解说改变Perl文件的最后访问时间和最后更改时间。例如:
$acctime=-A"file1";
$modtime=-M"file1";
@filelist=("file2","file3");
utime($acctime,$modtime,@filelist);
函数名fileno
调用语法filedesc=fileno(filevar);
解说返回Perl文件的内部UNIXPerl文件描述。参数filevar为Perl文件变量。
函数名fcntl,flock
调用语法fcntl(filevar,fcntlrtn,value);
flock(filevar,flockop);
解说详见同名UNIX函数帮助。
【编辑推荐】