- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是否认为 AIO 完成通知(无论是通过线程还是信号完成)没有提供关于哪个请求已完成的信息?除了为每个请求调用单独的回调函数之外,还有什么方法可以实现这种关联吗?表面上,您可以使用原始请求的 aiocb 结构来调用 aio_error 和 aio_return,但您不会将指针返回到 aiocb 结构作为通知回调的一部分。为什么似乎没有执行此操作的机制?
最佳答案
当您提交一个 struct aiocb
来启动异步 IO 时,您可以使用一个 struct sigevent
结构填充它的 aio_sigevent
成员:
struct sigevent {
int sigev_notify; /* Notification method */
int sigev_signo; /* Notification signal */
union sigval sigev_value; /* Data passed with
notification */
/* ... */
}
union sigval { /* Data passed with notification */
int sival_int; /* Integer value */
void *sival_ptr; /* Pointer value */
};
使用 aio_sigevent.sigev_value.sival_ptr
,您可以存储指向您的 struct aiocb
的指针(或将您的 struct aiocb
作为成员),然后您可以在调用信号处理程序时查找它:
si->si_value.sival_ptr;
aio(7)
manpage在研究这个时非常有帮助,sigevent(7)
联机帮助页有关于 struct sigevent
结构的详细信息。
关于linux - POSIX 一体机 : Any (good) way to correlate completion notifications back to original request?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8452726/
我是 python 的新手,我想将我的代码编译成 .exe 文件供所有人使用。我毫无问题地创建了 .exe,但它不是在“一体式”文件中,而是得到一个如下所示的文件夹: http://i.stack.i
我是否认为 AIO 完成通知(无论是通过线程还是信号完成)没有提供关于哪个请求已完成的信息?除了为每个请求调用单独的回调函数之外,还有什么方法可以实现这种关联吗?表面上,您可以使用原始请求的 aioc
在近期举行的 2020 全球虚拟现实峰会中,联想发布了与 Pico 合作开发 Mirage VR S3 一体机。 这款 VR 一体机采用 4K 显示屏,提供 101 度场视角,配备高通骁龙 835
我是一名优秀的程序员,十分优秀!