找回密码
 注册
查看: 6190|回复: 0

perl语言关闭文件句柄

[复制链接]
发表于 2011-11-13 23:02:51 | 显示全部楼层 |阅读模式
当结束一个文件句柄时,你可以如下这样关闭它:
close BEDROCK;
当关闭文件句柄时,Perl 将告诉操作系统已经结束了对此数据流的操作,因此应当将输出的数据写到磁盘中,可能某人正
在等待使用它◆。如果程序重新打开它(也就是说,使用open 重新打开此文件句柄),或者退出程序◆,Perl 将自动关闭
文件句柄。
◆如果对系统的I/O 有足够的了解,你将知道更多的信息。通常,文件句柄被关闭时,下面就是可能发生的事: 如果还有输入存在于文
件中,则被忽略。如果还有数据存在于管道(pipeline)中,则写入程序收到管道关闭的信号。如果输出到文件或管道中,则缓存被清空
(数据被传走)。如果文件句柄被锁住,则解锁。参阅系统的I/O 文档了解更多的信息。
◆无论什么原因,从程序退出将关闭文件句柄,如果Perl 被中断,则缓存中的数据被清空。也就是说,如果你的程序由于除以0 等错误
而退出,Perl 将继续运行,确保数据能正确地输出。如果Perl 停止运行(内存不够,或者收到异常的信号(unexpected singal )),则最
后的数据可能不能写到磁盘中。但是,这通常不是重要的问题。
由于这些原因,许多Perl 程序没有考虑close。但是,如果希望程序更加整洁,则每一个open 都应当使用一个close。通常,
最好在不使用一个文件句柄时就立刻将它关闭,无论程序是否立即结束◆。
◆关闭文件句柄将清空缓存,并释放文件的锁。由于可能有人会使用某个文件,因此对于运行时间很长的程序,应当在可能的情况下早
点关闭句柄。但大量的程序只运行一秒或者两秒,因此是否关闭无关紧要。关闭文件句柄也会释放某些有限的资源。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-24 12:15 , Processed in 0.041522 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表