#include <stdio.h>
#include <stdlib.h>
#include <libaio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <libaio.h>
#define AIO_MAXIO 64
#define AIO_BLKSIZE 1024
int srcfd = -1;
static void rd_done(io_context_t ctx, struct iocb *iocb, long res, long res2){
int iosize = iocb->u.c.nbytes;
char *buf = (char *)iocb->u.c.buf;
off_t offset = iocb->u.c.offset;
if (res2 != 0) {
printf("aio read failed \n");
exit(1);
}
if (res != iosize) {
printf("read missing bytes expect %d got %d \n", iocb->u.c.nbytes, res);
exit(1);
}
printf("the str is %s \n", buf);
free(buf);
}
void main(int args, void *arg[]){
io_context_t myctx;
int rc;
char *buff = NULL;
int offset = 0;
int num, i, tmp;
if (args < 2) {
printf("the number of param is wrong \n");
exit(1);
}
if((srcfd = open(arg[1], O_RDWR)) < 0 ) {
printf("open srcfile error \n");