1

我之前也问过类似的问题,但是我得到的评论让我觉得我表达得不好什么的,所以我把它删除了,再试一次。我有使用libaio异步 I/O 线程写入文件的 C 代码。稍后在代码中,正在写入的内存位置被重新填充。不用说,在重新填充开始之前,我必须确保编写完成。如果我fsync()在重新填充开始之前调用,这是否会导致主线程阻塞,直到所有线程的写入完成?手册页似乎暗示了这fsync一点,但我找不到明确的说法。还有aio_fsync函数,但它的手册页说“请注意,这只是一个请求;它不等待 I/O 完成。” 但等待 I/O 完成正是我所需要的。

我知道我可以一个一个地检查写入该文件的所有线程,然后等待它们完成。但我希望有一个像 call 一样的单行代码fsync()。有这样的事吗?

4

0 回答 0