gpt4 book ai didi

linux - 来自/proc/$PID/fd 的套接字 fd 似乎无效

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

我知道进程的pid,需要获取它使用的socketfd,所以在/proc/$pid/中查找fd,例如:

$ ls -la /proc/1442/fd | grep socket
lrwx------ 1 root root 64 Jan 23 16:22 7 -> socket:[21807]
$

现在,当我将代表套接字描述符的值 7 传递给 getsockopt() 时,我收到了 EBADF 错误。即使具有 root 权限,也不允许从另一个进程执行此操作吗?

我做错了什么?

最佳答案

文件描述符是每个进程的。它们不在进程之间共享。

如果你想访问另一个进程拥有的文件描述符,你有时可以 open() /proc/<pid>/fd 中的路径得到它的副本。但是,这仅适用于普通文件;它不适用于套接字。 ( This question addresses the internal details. )

所以,简而言之,没有。据我所知,在没有该进程合作的情况下,没有一种直接的方法可以让一个进程从另一个进程“接管”套接字。

关于linux - 来自/proc/$PID/fd 的套接字 fd 似乎无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48411098/

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