从内核模块中 AF_UNIX 套接字的 fd 获取绝对路径
Get absolute path from a fd of an AF_UNIX socket in kernel module
给定一个文件描述符,我需要获取它的绝对路径,无论它是常规文件还是 AF_UNIX
套接字。 How can I get a filename from a file descriptor inside a kernel module? 处的代码适用于常规文件,但使用 AF_UNIX
套接字时,我得到类似 "socket:[12345]"
的内容,而不是绝对路径“/tmp/.X11-unix/X0”。
struct sockaddr_un {
unsigned short sun_family; // AF_UNIX
char sun_path[108]; // pathname
};
netstat -x
通过参考 /proc/net/unix
显示 unix 套接字的完整路径名,它由 unix_seq_show
在 net/unix/af_unix.c
中填充。在这里查看它是如何完成的:
http://lxr.free-electrons.com/source/net/unix/af_unix.c?v=4.1#L2252
给定一个文件描述符,我需要获取它的绝对路径,无论它是常规文件还是 AF_UNIX
套接字。 How can I get a filename from a file descriptor inside a kernel module? 处的代码适用于常规文件,但使用 AF_UNIX
套接字时,我得到类似 "socket:[12345]"
的内容,而不是绝对路径“/tmp/.X11-unix/X0”。
struct sockaddr_un {
unsigned short sun_family; // AF_UNIX
char sun_path[108]; // pathname
};
netstat -x
通过参考 /proc/net/unix
显示 unix 套接字的完整路径名,它由 unix_seq_show
在 net/unix/af_unix.c
中填充。在这里查看它是如何完成的:
http://lxr.free-electrons.com/source/net/unix/af_unix.c?v=4.1#L2252