考虑一下,我调用aio_write()异步编写了大部分文件。然后程序继续执行并调用write()。未设置标志NON_BLOCK。写()会等到aio_write()完成吗?把write()和aio_write()混在一起对吗?
发布于 2015-11-18 07:07:22
没有write()不会等待aio_write()完成。但是,实际上--取决于文件系统、机器上的加载、IO的大小--您可能会看到write()在aio_write()之后完成。但是,并不能保证第一次发行的书面文件会先完成。
如果aio_write()和write()不写入相同的块,则可以混合它们。如果它们重叠,则必须处理IO首先完成的所有情况,这些情况要复杂一些。
https://stackoverflow.com/questions/33773482
复制相似问题