在Linux根路径下没有文件名的情况下读取/写入了哪些文件

时间:2019-07-03 20:16:54

标签: filesystems kernel inode

我试图通过在Linux内核站点下从文件系统中打印一些消息来监视读写行为,例如在“ fs / read_write.c”中。

要打印出文件名信息,我使用file->f_path.dentry->d_iname查找当前文件名,并使用dentry_path_raw(file->f_path.dentry,buff,256)获得文件路径。

它工作正常,但我发现一些读/写操作没有在根路径下的文件名,例如path="/"filename=""。 (有时文件名随[eventfd]一起提供),它们始终来自pos=0,并且由uid=0(系统)以较小的计数/长度(通常为4、8或16)进行读/写,或者uid=1000(用户)。

这些文件或行为可能是什么?可以知道它们的文件名吗?


(已编辑) 我正在将这些读写行为作为日志文件收集到我们的项目中,检查它们是否对我们有用。因此,我想知道这些没有任何名称的文件是什么。在日志中,我们看到了许多记录,例如:

timestamp(s,ns), r/w, file_path, count, pos
1561655986,735903193,w,/,1,0
1561655986,735910768,w,/,1,0
1561655986,735919919,r,/,10,0
1561655986,735926298,r,/,10,0
1561655986,737899450,w,/,8,0
1561655986,738076093,r,/,16,0
1561655986,744518278,r,/dri/card1,1024,0

通过使用lsof,我可以在根路径下找到几行,例如:

dconf\x20 4222 4223             user  rtd       DIR              259,2     4096          2 /
...
gmain     4222 4224             user  rtd       DIR              259,2     4096          2 /
...
pulseaudi 4268                  user  cwd       DIR              259,2     4096          2 /
pulseaudi 4268                  user  rtd       DIR              259,2     4096          2 /

它们只是一些临时文件吗?为什么他们没有任何文件名?

1 个答案:

答案 0 :(得分:0)

lsof提供了系统的信息/列表,我可以根据此列表进行搜索。谢谢。