aio是linux上的異步IO實現,具體測試代碼如下:
aiocb ab;
bzero( (char *)&ab, sizeof(struct aiocb) );
int fd = open("a.txt", O_RDWR | O_APPEND);
ab.aio_buf = malloc(201);
ab.aio_fildes = fd;
ab.aio_nbytes = 20;
ab.aio_offset = 0;
int r = aio_read(&ab);
std::cout << "return:" << r << std::endl;
std::cout << "buff:" << (char *)ab.aio_buf << std::endl;
r = aio_return(&ab);
std::cout << "return:" << r << std::endl;
char *b = "good boy!!";
ab.aio_buf = b;
aio_write(&ab);
關鍵點在於,struct aiocb結構體的填充。