在异步IO完成

在异步IO完成

问题描述:

我想知道如何完成一个成功的异步IO(读)请求数据可用。我的意思是请求的数据是否存在于设备缓冲区或内存中(以某种方式缓存)?在异步IO完成

例如,当我的异步回调被触发(由操作系统)通知我有关数据已准备就绪时,我是否会提供一个文件句柄(指向设备)来启动数据传输,或者,我已经在回调中有数据(哪种数据意味着数据在内存中)。

+0

我不清楚你在问什么。 – user3344003

+0

@ user3344003我更新了一些问题。希望现在已经很清楚了。 – zgulser

您尚未指定您正在使用的系统。在我使用过的支持异步I/O的所有系统中,一个调用系统服务并提供用户缓冲区来存储数据。

编程技巧是,当软件中断发生时通知I/O完成时,应用程序必须将I/O请求与缓冲区匹配。

不可否认,这样的系统服务包括一个参数来传递一些应用程序ID,该ID随后被传递到I/O完成时调用的软件中断处理程序。

因此通常您的数据将在缓冲区等待您。