| .TH io_cancel 2 2002-09-03 "Linux 2.4" "Linux AIO" |
| .SH NAME |
| io_cancel \- Cancel io requests |
| .SH SYNOPSIS |
| .nf |
| .B #include <errno.h> |
| .sp |
| .br |
| .B #include <libaio.h> |
| .sp |
| .br |
| .BI "int io_cancel(io_context_t ctx, struct iocb *iocb)" |
| .br |
| .sp |
| struct iocb { |
| void *data; /* Return in the io completion event */ |
| unsigned key; /* For use in identifying io requests */ |
| short aio_lio_opcode; |
| short aio_reqprio; /* Not used */ |
| int aio_fildes; |
| }; |
| .fi |
| .SH DESCRIPTION |
| Attempts to cancel an iocb previously passed to io_submit. If |
| the operation is successfully cancelled, the resulting event is |
| copied into the memory pointed to by result without being placed |
| into the completion queue. |
| .PP |
| When one or more requests are asynchronously processed, it might be |
| useful in some situations to cancel a selected operation, e.g., if it |
| becomes obvious that the written data is no longer accurate and would |
| have to be overwritten soon. As an example, assume an application, which |
| writes data in files in a situation where new incoming data would have |
| to be written in a file which will be updated by an enqueued request. |
| .SH "RETURN VALUES" |
| 0 is returned on success , otherwise returns Errno. |
| .SH ERRORS |
| .TP |
| .B EFAULT |
| If any of the data structures pointed to are invalid. |
| .TP |
| .B EINVAL |
| If aio_context specified by ctx_id is |
| invalid. |
| .TP |
| .B EAGAIN |
| If the iocb specified was not |
| cancelled. |
| .TP |
| .B ENOSYS |
| if not implemented. |
| .SH "SEE ALSO" |
| .BR io(3), |
| .BR io_fsync(3), |
| .BR io_getevents(3), |
| .BR io_prep_fsync(3), |
| .BR io_prep_pread(3), |
| .BR io_prep_pwrite(3), |
| .BR io_queue_init(3), |
| .BR io_queue_release(3), |
| .BR io_queue_run(3), |
| .BR io_queue_wait(3), |
| .BR io_set_callback(3), |
| .BR io_submit(3), |
| .BR errno(3) |