linux异步操作接口

aiocb数据结构

需要头文件

#include <aiocb.h>

结构定义为

struct aiocb {
    /* The order of these fields is implementation-dependent */

    int             aio_fildes;     /* File descriptor */
    off_t           aio_offset;     /* File offset */
    volatile void  *aio_buf;        /* Location of buffer */
    size_t          aio_nbytes;     /* Length of transfer */
    int             aio_reqprio;    /* Request priority */
    struct sigevent aio_sigevent;   /* Notification method */
    int             aio_lio_opcode; /* Operation to be performed;
                                       lio_listio() only */

    /* Various implementation-internal fields not shown */
};

aio_lio_opcode支持以下值

enum { LIO_READ, LIO_WRITE, LIO_NOP };

读写接口

需要头文件

#include <aio.h>

读接口

int aio_read(struct aiocb *aiocbp);

写接口

int aio_write(struct aiocb *aiocbp);

等待处理结果

int aio_suspend(const struct aiocb *const aiocb_list[], int nitems,
                       const struct timespec *restrict timeout);

错误状态

int aio_error(const struct aiocb *aiocbp);

可能的返回 值

返回值说明
EINPROGRESS请求还没有处理完
ECANCELED请求取消
0请求处理成功
> 0处理失败

返回状态

ssize_t aio_return(struct aiocb *aiocbp);

异步操作完成成功时,才调用。其返回与对应的读写返回字节数

参考资料:
aio

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kgduu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值