Ответ 1
Да, вы можете, используя sendmsg()
с SCM_RIGHTS из одного процесса в другой:
SCM_RIGHTS
- Отправить или получить набор открыть дескрипторы файлов из другого обработать. Часть данных содержит целочисленный массив файловых дескрипторов. Пропущенные файловые дескрипторы ведут себя как хотя они были созданы сdup(2)
.
http://linux.die.net/man/7/unix
Это не типичное использование. Чаще всего, когда процесс наследует сокеты от своего родителя (после a fork()
). Любые обработчики файлов (включая сокеты), не закрытые, будут доступны дочернему процессу. Таким образом, дочерний процесс наследует родительские сокеты.
Серверный процесс, который прослушивает подключения, называется демоном. Обычно это связано с каждым новым соединением, создавая процесс обработки каждого нового запроса. Пример типичного демона:
http://www.steve.org.uk/Reference/Unix/faq_8.html#SEC88
Прокрутите вниз до void process()
.