首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自/proc/$PID/fd的套接字fd似乎无效

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

Stack Overflow用户
提问于 2018-01-24 05:26:23
回答 2查看 850关注 0票数 1

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

代码语言:javascript
复制
$ ls -la /proc/1442/fd | grep socket
lrwx------ 1 root root 64 Jan 23 16:22 7 -> socket:[21807]
$

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

我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2018-01-24 05:39:42

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

如果您想访问另一个进程拥有的文件描述符,有时可以在/proc/<pid>/fd中对路径执行open()操作,以获取它的副本。然而,这只适用于普通文件;它不适用于套接字。(This question addresses the internal details.)

所以,简而言之,不是。据我所知,如果没有一个进程的合作,一个进程就无法“接管”另一个进程的套接字。

票数 1
EN

Stack Overflow用户

发布于 2018-04-11 23:03:36

看起来你可以“接管”一个作为根的套接字,看:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48411098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档