我有一些非常大的文件要使用,我使用几个不同的 I/O 函数来访问它们。最常见的是bigmemory
包。
在写入文件时,我已经学会了刷新输出缓冲区的艰难方法,否则所有关于数据是否已保存的赌注都将失败。但是,这可能会导致一些非常长的等待时间,同时bigmemory
执行它的操作(很多分钟)。我不知道为什么会发生这种情况——它并不总是发生,也不容易复制。
是否有某种方法可以确定 R 中是否已刷新 I/O 缓冲区,尤其是对于bigmemory
?如果操作系统很重要,那么请随意以这种方式限制答案。
如果可以将答案推广到 之外bigmemory
,那就太好了,因为我有时会依赖其他内存映射函数或 I/O 流。
如果没有好的解决方案来检查缓冲区是否已被刷新,是否存在可以假设缓冲区已被刷新的情况?即除了使用flush()
.
更新:我应该澄清这些都是二进制连接。@RichieCotton 指出isIncomplete()
,虽然帮助文档只提到了文本连接。目前尚不清楚这是否可用于二进制连接。