当前位置:  开发笔记 > 运维 > 正文

如何在linux中两次打开文件?

如何解决《如何在linux中两次打开文件?》经验,为你挑选了1个好方法。

我有一个带有fd和字符串的链表我用来在每个条目中打开这个文件.我想打开并仅在此文件尚未打开的情况下将文件添加到此列表中,因为我打开并解析此文件并且不想两次执行此操作.我的想法是将文件名与此列表中的每个名称进行比较,但我的程序多次执行,Linux中的一个文件可以有多个名称(软/硬链接).我认为它不应该那么复杂,因为操作系统很容易检查,我是否已经使用了inode,r?我已经尝试过open使用和不使用相同的文件flock,但我总是得到一个新的fd.



1> Ross Ridge..:

当您成功打开文件时使用fstat文件.检查,看是否st_inost_devstruct stat通过申请在fstat已记录在您的链接列表.如果是,则关闭文件描述符并继续下一个文件.否则,将文件描述符,文件名st_inost_dev值添加到列表中.

您可以stat在打开文件之前使用它进行检查,但fstat如果通常情况下该文件尚未打开,则使用after会稍快一些.


@Schwern文件可能还有其他符号链接.
推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有