2017-10-10 7 views
-1

오픈 소켓 파일 디스크립터를 소유 한 프로세스의 PID/PID를 반환하는 Linux API가 있습니까? 현재로서는 내가 볼 수있는 유일한 방법은 모든 PID에 대해 /proc/PID/fd을 걷고 fd에 의해 inode에 의해 소켓을 파생시키는 것입니다. 내가 예를 들어,이 작업을 수행하는 어떤 콜/API를 보지 못했다 그러나소켓 fd의 PID 획득

:

int get_pids_for_socket(int sock_fd, int pids[])

(매우 거친 아이디어 물론). 그런 API가 존재하지 않는 이유는 무엇입니까, 아니면 잘 보이지 않았습니까?

감사합니다.

답변

0

질문은 의미가 없습니다. FD는 프로세스간에 고유하지 않습니다. 주어진 FD 값은 수백 개의 프로세스에 속할 수 있습니다. 소켓은 FD가 아닌 4- 튜플에 의해 고유하게 식별됩니다.

+0

4 튜플을 신경 쓰지 않고, 어떤 프로세스가'FD'로 식별 된 소켓을 열 었는지 알고 싶습니다. – Mark

+0

그래서 내가 쓴 것을 이해하지 못했습니다. 소켓 *은 FD에 의해 식별되지 않습니다. – EJP