【发布时间】:2018-06-04 13:00:05
【问题描述】:
我有两个进程,一个是写入(追加)到一个文件,另一个是读取它。两个进程同时运行,但不通信。另一个读取器进程可能会在写入器进程完成之前启动。
这种方法有效,但 read() 通常返回读取零字节且没有错误。它们的零长度读取与非零长度读取的比率很高,这是低效的。
有没有办法解决这个问题?这是在 POSIX 文件系统上。
【问题讨论】:
-
这就是 UNIX 的发明者开发
pipe的原因。读取零字节是所有 UNIX 系统中正常的文件结尾检测机制,因此您可以改用命名管道。
标签: linux file filesystems posix