"ls -l /proc/[PID]/fd" 输出中的 anon_inode 是什么?

Ser*_*nyy 9 linux proc file-types

在查看/proc/[PID]/fd/各种进程的文件夹时,我发现了奇怪的条目dbus

lrwx------ 1 root root 64 Aug 20 05:46 4 -> anon_inode:[eventpoll]
Run Code Online (Sandbox Code Playgroud)

因此问题是,什么是anon_inodes ?这些类似于匿名管道吗?

slm*_*slm 9

下面的所有内容都/proc包含在man proc. 本节涵盖anon_inode.

对于管道和套接字的文件描述符,条目将是符号链接,其内容是具有 inode 的文件类型。对此文件的 readlink(2) 调用返回格式为的字符串:

 type:[inode]
Run Code Online (Sandbox Code Playgroud)

例如,socket:[2248868]将是一个套接字,其 inode 为 2248868。对于套接字,该 inode 可用于在 /proc/net/.

对于没有相应 inode 的文件描述符(例如,由epoll_create(2), eventfd(2), inotify_init(2), signalfd(2), 和 生成的文件描述符timerfd(2)),条目将是具有以下形式的内容的符号链接

 anon_inode:<file-type>
Run Code Online (Sandbox Code Playgroud)

在某些情况下,文件类型用方括号括起来。

例如,一个 epoll 文件描述符将有一个符号链接,其内容是 string anon_inode:[eventpoll]

有关epoll我在此处讨论它们的更多信息-我可以找到有关正在运行的线程上的 eventpoll 的哪些信息?.

有关anon_inode's -什么是 Linux 中的匿名 inode 的更多信息. 基本上,磁盘上有/曾经有数据不再有文件系统引用来访问它。Ananon_inode显示有一个没有引用 inode 的文件描述符。