【发布时间】:2013-02-05 09:09:44
【问题描述】:
我正在用户空间中搜索 C 语言中的环形缓冲区实现,因此我可以在我的库中使用它。
因为我需要一个环形缓冲区
- 非阻塞写入(=覆盖最旧的数据)
- 如果为空则阻止读取
我搜索了一段时间,并记得我曾使用 wait_event_interruptible 和 wake_up_interruptible 在内核模式下执行类似的操作。
但是在用户空间中使用了什么,所以我也许可以结合该方法搜索环形缓冲区?我不想重新发明轮子 - 周围有很多环形缓冲区解决方案。
提前致谢并致以诚挚的问候!
编辑:
似乎pthread_cond_wait 可能等同于wait_event_interruptible。
【问题讨论】:
-
你是在单个进程中读/写环形缓冲区,还是从多个进程中读/写?另外,什么操作系统,或者它应该是可移植的?
-
我有一个共享库,想从主线程写入缓冲区并在另一个 (p) 线程中读取(共享库写入主线程中的文件,并且应该将数据也传递给第二个线程进行进一步处理)。操作系统是 Android 设备。
-
@MartinM。这是我也需要的确切解决方案!!!
-
这看起来像你需要的:stackoverflow.com/questions/4405721/…
-
你想如何处理缓冲区溢出?作家块?作家盲目地覆盖,也覆盖数据阅读器只是阅读?程序中止了?
标签: c blocking nonblocking circular-buffer