Получить pid процесса, который создал сокет
Как я могу получить PID процесса, который установил сокет. Я прошел по этой PDF-ссылке, где он упомянул вызов fcntl() с помощью F_SETOWN и pid нашего процесса, чтобы сообщить процессу, что он является владельцем сокета. Как я могу получить владельца сокета с помощью fcntl()?
1 ответ
От человека pagr из fcntl ()
F_SETOWN (int) Установить идентификатор процесса или идентификатор группы процессов, которые будут получать сигналы SIGIO и SIGURG для событий в файловом дескрипторе fd, равным идентификатору, указанному в аргументе arg. Идентификатор процесса указывается как положительное значение; идентификатор группы процессов указан как отрицательное значение. Чаще всего вызывающий процесс указывает себя в качестве владельца (то есть arg указывается как getpid(2)).
Вы можете использовать getpid(), чтобы получить идентификатор процесса. И передавая это в F_SETOWN, вы запрашиваете, чтобы процесс был уведомлен, если SD доступен для чтения или записи.
В частности, ответ на ваш вопрос называется getpid().