我可以打开套接字并将其传递给Linux中的另一个进程吗

发布于 2021-02-02 11:13:34

在Linux中,是否可以打开套接字并将该套接字传递给另一个进程?如果是,请您告诉我在哪里可以找到示例?

谢谢。

关注者
0
被浏览
92
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    是的,可以,sendmsg()与SCM_RIGHTS一起使用,从一个过程到另一个过程:

    SCM_RIGHTS-从另一个进程发送或接收一组打开的文件描述符。数据部分包含文件描述符的整数数组。传递的文件描述符的行为就像它们是使用创建的
    dup(2)

    http://linux.die.net/man/7/unix

    那不是典型的用法。更常见的情况是进程从其父级继承套接字(在之后fork())。未关闭的所有文件句柄(包括套接字)将对子进程可用。因此,子进程继承了父进程的套接字。

    侦听连接的服务器进程称为守护程序。通常,这会分叉到每个新连接上,从而产生一个进程来处理每个新请求。典型守护程序的示例在这里:

    http://www.steve.org.uk/Reference/Unix/faq_8.html#SEC88

    向下滚动到void process()



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看