#include #include #include #include #include #include #include #include #include #define TNAME "aio_write/1-1.c" int main() { char tmpfname[256]; #define BUF_SIZE 512512 char buf[BUF_SIZE]; char check[BUF_SIZE+1]; int fd; struct aiocb aiocb; int err; int ret; snprintf(tmpfname, sizeof(tmpfname), "pts_aio_write_1_1_%d", getpid()); unlink(tmpfname); fd = open(tmpfname, O_CREAT | O_RDWR | O_EXCL, S_IRUSR | S_IWUSR); if (fd == -1) { printf(TNAME " Error at open(): %s\n", strerror(errno)); exit(1); } unlink(tmpfname); memset(buf, 0xaa, BUF_SIZE); memset(&aiocb, 0, sizeof(struct aiocb)); aiocb.aio_fildes = fd; aiocb.aio_buf = buf; aiocb.aio_nbytes = BUF_SIZE; if (aio_write(&aiocb) == -1) { printf(TNAME " Error at aio_write(): %s\n", strerror(errno)); close(fd); exit(2); } int cancellationStatus = aio_cancel(fd, &aiocb); printf (TNAME " cancelationStatus : %d\n", cancellationStatus); /* Wait until completion */ while (aio_error (&aiocb) == EINPROGRESS); close(fd); printf ("Test PASSED\n"); return 0; }