我想知道在完成成功的异步IO(读取)请求后数据是如何可用的。我的意思是请求的数据存在于设备缓冲区或内存中(以某种方式缓存)?
例如,当触发我的异步回调(由操作系统)通知我数据准备就绪时,我是否会提供文件句柄(指向设备)以启动数据传输,或者我已经有回调中的数据(这意味着数据在内存中)。
答案 0 :(得分:0)
您尚未指定正在使用的系统。在我使用的所有支持异步I / O的系统中,一个调用系统服务并提供用户缓冲区来存储数据。
编程技巧是,当软件中断发生通知应用程序I / O完成时,应用程序必须将I / O请求与缓冲区匹配。
此类系统服务总是包含一个传递某个应用程序ID的参数,该参数ID又传递给I / O完成时调用的软件中断处理程序。
通常你的数据将在缓冲区中等着你。