加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux:通过procfs确定文件句柄标识

发布时间:2020-12-13 23:28:13 所属栏目:Linux 来源:网络整理
导读:我正在尝试确定是否可以使用procfs中的元数据来区分同一文件上的两个单独句柄,以及指向它的两个文件描述符的单个句柄. 案例1:两个文件句柄 # setupexec 3test.lckexec 4test.lck# usageflock -x 3 # this grabs an exclusive lockflock -s 4 # this blockse
我正在尝试确定是否可以使用procfs中的元数据来区分同一文件上的两个单独句柄,以及指向它的两个文件描述符的单个句柄.

案例1:两个文件句柄

# setup
exec 3>test.lck
exec 4>test.lck
# usage
flock -x 3  # this grabs an exclusive lock
flock -s 4  # this blocks
echo "This code is never reached"

案例2:一个手柄,两个FD

# setup
exec 3>test.lck
exec 4>&3
# usage
flock -x 3  # this grabs an exclusive lock
flock -s 4  # this converts that lock to a shared lock
echo "This code gets run"

如果我在“设置”阶段完成之后和“使用”之前检查用户空间的系统状态,并且我想区分这两种情况,那么必要的元数据是否可用?如果没有,揭露它的最佳方法是什么? (将内核空间指针添加到/ proc / * / fdinfo是一个合理的操作,上游可能会接受作为补丁吗?)

解决方法

我不知道有任何事情暴露在这个过程中.在调试一些垃圾时,弄清楚它可能很有用,但是你可以使用内核调试器或systemtap脚本来检查状态.

从您的问题看来,您似乎希望以一种易于编写脚本的方式实现这一目标,在这里我必须问一下真正的问题是什么.

我不知道linux人们是否有兴趣公开这个.一个问题是暴露指向文件的指针会增加另一个infoleak,因此将来很可能插入.其他方法需要对所有文件对象进行编号,而这种情况不会发生.无论如何,你会被要求以与我上面提到的类似的方式进行辩护.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读