当进程访问文件时,是否保证会创建文件描述符?具体来说,在 /proc/pid/fd 中
我正在创建一个具有以下特征的 ebpf 程序系统调用上的跟踪点读()。 该程序的目的是计算文件被读取的次数。 我目前追踪此问题的方法如下: 当 read() 的跟踪点命中时,它可以访问文件描述符 (fd) 和进程 ID (pid)。我的 c 回调代码会使用此信息执行。 代码从 /proc/{pid}/fd 中的每个文件获取 inode。如果 inode 与要监视的特定文件匹配,则我增加计数。这一切都发生在 read() 系统调用完成之前。 有时这很有效...但是我注意到一些奇怪的事情...... 较小的文件(例如总共 2 行)通常不会以这种方式被拾取,...