我试图确定是否有可能区分同一个文件上的两个单独句柄和一个带有两个文件描述符指向它的句柄,使用来自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:一个句柄,两个FDs
# 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添加内核空间指针是一种合理的操作,上游可能会接受它作为补丁吗?)
发布于 2016-02-23 18:54:25
我不知道有什么事情暴露了这件事。在调试一些垃圾时,弄清楚这一点可能很有用,但是您只需使用内核调试器或系统抽头脚本来检查状态。
从你的问题上看,你似乎想要以一种易于编写脚本的方式来实现这一点,在这里,我必须问真正的问题是什么。
我不知道linux用户是否有兴趣公开这个问题。一个问题是,将指针公开到文件中会添加另一个infoleak,因此可能会在将来插入。其他方法需要对所有文件对象编号,这是不会发生的。无论如何,你会被要求以类似的方式我上面问你的理由。
https://stackoverflow.com/questions/35526538
复制相似问题