栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如果指向的文件被移动或删除,Linux上的打开文件句柄会怎样?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如果指向的文件被移动或删除,Linux上的打开文件句柄会怎样?

如果将文件移动(在同一文件系统中)或重命名,则文件句柄将保持打开状态,并且仍可用于读取和写入文件。

如果删除了文件,则文件句柄将保持打开状态,并且仍可以使用(这不是某些人所期望的)。在关闭最后一个句柄之前,不会真正删除该文件。

如果文件被新文件替换,则完全取决于方式。如果文件的内容被覆盖,则文件句柄将仍然有效并访问新内容。如果现有文件被取消链接,并且使用相同的名称创建了一个新文件,或者如果使用将新文件移动到了现有文件

rename()
,则该文件与删除操作相同(请参见上文)-也就是说,文件句柄将继续引用文件的
原始 版本。

通常,一旦打开文件,即打开文件,并且没有人更改目录结构就可以更改它-他们可以移动,重命名文件或在其位置放置其他内容,只是保持打开状态。

在Unix中,只有delete,

unlink()
这是有道理的,因为它不一定要删除文件-只是从目录中删除链接。


另一方面,如果基础设备消失(例如USB拔出),则文件句柄将不再有效,并且很可能在任何操作中产生IO
/错误。您仍然必须关闭它。即使插回设备,也是如此,因为在这种情况下保持文件打开不明智。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400900.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号