gpt4 book ai didi

linux - 在 Linux 中列出进程文件的程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:21:06 24 4
gpt4 key购买 nike

我需要一个程序来列出 Linux 中进程访问/打开的所有文件。它应该像这样工作,

o/p:进程正在访问的文件的完整路径。

不想使用“lsof”实用程序或任何其他实用程序。

有没有办法以编程方式实现这一点?

最佳答案

如果您只想要由 pid 1234 进程通过打开文件描述符访问的文件,请列出 /proc/1234/fd/ 目录(大部分条目是符号链接(symbolic link))。您还可以通过 /proc/1234/fdinfo/

获得更多详细信息

尝试

ls -l /proc/self/fd/

了解这些文件包含的内容。

您可以以编程方式使用 readdir(3)opendir(3) 之后在这些目录上(还有 readlink(2) ,至少对于 /proc/1234/fd/ 中的条目....)。另见 proc(5)

请注意 /proc/ 是特定于 Linux 的。其他一些 Unix(例如 Solaris)也有它,但内容、属性和语义非常不同。

如果您还关心过去由某个进程打开和关闭的文件,那就更难了。另见 inotify(7)ptrace(2) ...

要将文件路径转换为“规范的”绝对文件路径,请使用 realpath(3) .

关于linux - 在 Linux 中列出进程文件的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21527956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com