linux 中最新的 libaio API (/usr/include/libaio.h) 定义 io_event 如下:
struct io_event {
PADDEDptr(void *data, __pad1);
PADDEDptr(struct iocb *obj, __pad2);
PADDEDul(res, __pad3);
PADDEDul(res2, __pad4);
};
PADDEDul 解析为:
#define PADDEDul(x, y) unsigned long x; unsigned y
我读过的所有例子都说如果'res'是负数,那么系统调用期间会发生错误并且res包含负的'errno'变量。我的问题是,如果 'res' 被声明为 unsigned long long ,它如何包含负 errno ?如果“res”不再包含错误代码,我在哪里可以得到它来进行写入或读取系统调用?