c/c++语言开发共享我可以在C中锁定和解锁fifo(命名管道)吗?

我有两个进度, p1p2 ,以及一个名为pipe var的ipc,介于两个进度之间。
我想在p1写入时锁定var的rw为p2 ,在p1写完时解锁var

PS:

我使用select进行非阻塞,所以当p1把任何东西放到var时, p2会变得可读。可以在p1写完后让var变得可读吗?

    您可以使用信号(例如SIGUSR1 )。 编写器管道非阻塞(因此它不会在管道变满时阻塞),写入直到它不能再写入,然后将信号发送到另一个进程。 读取过程读取所有(从其非阻塞管道),然后向写入者发送信号,然后写入者继续写入。

    但是,这确实不需要。 作者可以写,读者只读。 如果管道变满,编写器将阻塞,直到它可以写更多。 对于读者来说,如果没有什么可读的话,它会阻止。 然后当编写器写入所有数据时,它将简单地关闭管道的末端,读取器将通过read调用检测到read零字节。

      以上就是c/c++开发分享我可以在C中锁定和解锁fifo(命名管道)吗?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522946.html

      (0)
      上一篇 2020年12月11日
      下一篇 2020年12月11日

      精彩推荐