linux根据句柄获取文件名,linux:通过procfs确定文件句柄标识

我正在尝试确定是否可以使用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,因此将来很可能插入.其他方法需要对所有文件对象进行编号,而这种情况不会发生.无论如何,你会被要求以与我上面提到的类似的方式进行辩护.

标签:linux,kernel,flock,procfs

来源: https://codeday.me/bug/20190706/1396536.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值