如何在Solaris中准确实现匿名管道?

时间:2019-04-24 04:07:49

标签: unix pipe solaris anonymous-pipes

我试图了解Unix管道,但是找不到有关Solaris匿名管道的信息,Solaris匿名管道是使用 pipe(2)之类的东西创建的。

据我所知,此系统调用在内核空间中的某个位置创建了一个缓冲区,并使用vfs和vnode(不确定此部分)以文件描述符为链接的读写结束。

但是在内核空间中创建的缓冲区是什么?它是如何实现的,与通常的字节数组有什么区别?

2 个答案:

答案 0 :(得分:0)

最终答案(以防万一,如果有人发现并感兴趣):使用STREAMS实现在内核空间中创建的该缓冲区:(来源:illumos门中的fifonode.h,感谢jamieguinan)

     struct msgb    *fn_mp;     /* message waiting to be read */
     struct msgb    *fn_tail;   /* last message to read */

有关struct msgb(STREAMS的一部分)的信息可以在man msgb(9)中阅读。

答案 1 :(得分:0)

考虑使用Solaris门。它们是在整个Solaris上使用的快速IPC机制。您可以在docs.oracle.com上找到文档,并在博客和Illumos门https://github.com/illumos/illumos-gate

中找到许多示例。
相关问题