我试图通过在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 /
它们只是一些临时文件吗?为什么他们没有任何文件名?
答案 0 :(得分:0)
lsof
提供了系统的信息/列表,我可以根据此列表进行搜索。谢谢。