第15课时 了解程序的运行性能
一、DBM文件
dbmopen(hash,filename,mode),将哈希结构与DBM文件连接起来。
filename实际上在硬盘上创建两个文件,即filename.pag和filename.dir。
mode指对两个文件的访问许可权,在Window中使用0666即可。
dbmclose(%hash),断开哈希结构与DBM文件的连接。
1,重点内容
关键字和数据的长度受限制,之和在1024字符左右。
运行dbmopen,之前的哈希结构中的值均丢失。
运行dbmclose之后,哈希结构中的值均丢失。
2,遍历与DBM文件相关联的哈希结构
遍历大的哈希结构,可以用($key,$value)=each(%hash)。
二、随机访问文件
1,打开文件进行读写操作
2,在读写文件中移动
seek函数,移动指针到文件的指定位置,第一个参数是文件句柄,第二个参数是想寻找的位移。0文件开始处,1文件当前位置,2文件结尾。
tell函数,返回文件中的当前读指针的位置。
三、锁定文件
竞态条件要求锁定文件,以解决可能出现的问题。
1,锁定UNIX和NT下的文件
flock( FILEHANDLE, lock_type ),提供诱导式锁定机制,第一个参数文件句柄,第二个参数锁的类型,锁定成功返回真。
use Fcntl qw(:flock),使用符号名作为lock_type,而不是数字。
文件锁有两种:公用锁和专用锁,读文件时用公用锁,写文件时用专用锁。
必须打开一个文件,才能给文件加锁。
通用锁函数
2,Windows95和Windows98下的加锁问题
Windows95和Windows98不需要对文件加锁,操作系统每次只支持一个用户进行文件操作。
3,其他使用文件锁的问题
更多信息参考perlfaq5的文档。