Index:
__syscall(2)_exit(2)
accept(2)
access(2)
acct(2)
adjtime(2)
aio_cancel(2)
aio_error(2)
aio_read(2)
aio_return(2)
aio_suspend(2)
aio_waitcomplete(2)
aio_write(2)
bind(2)
brk(2)
chdir(2)
chflags(2)
chmod(2)
chown(2)
chroot(2)
clock_getres(2)
clock_gettime(2)
clock_settime(2)
close(2)
connect(2)
creat(2)
dup(2)
dup2(2)
eaccess(2)
errno(2)
execve(2)
extattr(2)
extattr_delete_fd(2)
extattr_delete_file(2)
extattr_get_fd(2)
extattr_get_file(2)
extattr_set_fd(2)
extattr_set_file(2)
fchdir(2)
fchflags(2)
fchmod(2)
fchown(2)
fcntl(2)
fhopen(2)
fhstat(2)
fhstatfs(2)
flock(2)
fork(2)
fpathconf(2)
fstat(2)
fstatfs(2)
fsync(2)
ftruncate(2)
futimes(2)
getdents(2)
getdirentries(2)
getdtablesize(2)
getegid(2)
geteuid(2)
getfh(2)
getfsstat(2)
getgid(2)
getgroups(2)
getitimer(2)
getlogin(2)
getpeername(2)
getpgid(2)
getpgrp(2)
getpid(2)
getppid(2)
getpriority(2)
getresgid(2)
getresuid(2)
getrlimit(2)
getrusage(2)
getsid(2)
getsockname(2)
getsockopt(2)
gettimeofday(2)
getuid(2)
i386_get_ioperm(2)
i386_get_ldt(2)
i386_set_ioperm(2)
i386_set_ldt(2)
i386_vm86(2)
intro(2)
ioctl(2)
issetugid(2)
jail(2)
jail_attach(2)
kenv(2)
kevent(2)
kill(2)
killpg(2)
kldfind(2)
kldfirstmod(2)
kldload(2)
kldnext(2)
kldstat(2)
kldsym(2)
kldunload(2)
kqueue(2)
kse(2)
kse_create(2)
kse_exit(2)
kse_release(2)
kse_switchin(2)
kse_thr_interrupt(2)
kse_wakeup(2)
ktrace(2)
lchflags(2)
lchmod(2)
lchown(2)
lgetfh(2)
link(2)
lio_listio(2)
listen(2)
lseek(2)
lstat(2)
lutimes(2)
madvise(2)
mincore(2)
minherit(2)
mkdir(2)
mkfifo(2)
mknod(2)
mlock(2)
mlockall(2)
mmap(2)
modfind(2)
modfnext(2)
modnext(2)
modstat(2)
mount(2)
mprotect(2)
msync(2)
munlock(2)
munlockall(2)
munmap(2)
nanosleep(2)
nfssvc(2)
nmount(2)
ntp_adjtime(2)
ntp_gettime(2)
open(2)
pathconf(2)
pipe(2)
poll(2)
posix_madvise(2)
pread(2)
profil(2)
ptrace(2)
pwrite(2)
quotactl(2)
read(2)
readlink(2)
readv(2)
reboot(2)
recv(2)
recvfrom(2)
recvmsg(2)
rename(2)
revoke(2)
rfork(2)
rmdir(2)
rtprio(2)
sbrk(2)
sched_get_priority_max(2)
sched_get_priority_min(2)
sched_getparam(2)
sched_getscheduler(2)
sched_rr_get_interval(2)
sched_setparam(2)
sched_setscheduler(2)
sched_yield(2)
select(2)
semctl(2)
semget(2)
semop(2)
send(2)
sendfile(2)
sendmsg(2)
sendto(2)
setegid(2)
seteuid(2)
setgid(2)
setgroups(2)
setitimer(2)
setlogin(2)
setpgid(2)
setpgrp(2)
setpriority(2)
setregid(2)
setresgid(2)
setresuid(2)
setreuid(2)
setrlimit(2)
setsid(2)
setsockopt(2)
settimeofday(2)
setuid(2)
shmat(2)
shmctl(2)
shmdt(2)
shmget(2)
shutdown(2)
sigaction(2)
sigaltstack(2)
sigblock(2)
sigmask(2)
sigpause(2)
sigpending(2)
sigprocmask(2)
sigreturn(2)
sigsetmask(2)
sigstack(2)
sigsuspend(2)
sigvec(2)
sigwait(2)
socket(2)
socketpair(2)
stat(2)
statfs(2)
swapoff(2)
swapon(2)
symlink(2)
sync(2)
sysarch(2)
syscall(2)
truncate(2)
umask(2)
undelete(2)
unlink(2)
unmount(2)
utimes(2)
utrace(2)
uuidgen(2)
vfork(2)
wait(2)
wait3(2)
wait4(2)
waitpid(2)
write(2)
writev(2)
aio_read(2)
NAME
aio_read -- asynchronous read from a file (REALTIME)
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <aio.h> int aio_read(struct aiocb *iocb);
DESCRIPTION
The aio_read() system call allows the calling process to read iocb->aio_nbytes from the descriptor iocb->aio_fildes beginning at the offset iocb->aio_offset into the buffer pointed to by iocb->aio_buf. The call returns immediately after the read request has been enqueued to the descriptor; the read may or may not have completed at the time the call returns. If _POSIX_PRIORITIZED_IO is defined, and the descriptor supports it, then the enqueued operation is submitted at a priority equal to that of the calling process minus iocb->aio_reqprio. The iocb->aio_lio_opcode argument is ignored by the aio_read() system call. The iocb pointer may be subsequently used as an argument to aio_return() and aio_error() in order to determine return or error status for the enqueued operation while it is in progress. If the request could not be enqueued (generally due to invalid argu- ments), then the call returns without having enqueued the request. If the request is successfully enqueued, the value of iocb->aio_offset can be modified during the request as context, so this value must not be referenced after the request is enqueued.
RESTRICTIONS
The Asynchronous I/O Control Block structure pointed to by iocb and the buffer that the iocb->aio_buf member of that structure references must remain valid until the operation has completed. For this reason, use of auto (stack) variables for these objects is discouraged. The asynchronous I/O control buffer iocb should be zeroed before the aio_read() call to avoid passing bogus context information to the kernel. Modifications of the Asynchronous I/O Control Block structure or the buffer contents after the request has been enqueued, but before the request has completed, are not allowed. If the file offset in iocb->aio_offset is past the offset maximum for iocb->aio_fildes, no I/O will occur.
RETURN VALUES
The aio_read() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the [EAGAIN] The request was not queued because of system resource limitations. [ENOSYS] The aio_read() system call is not supported. The following conditions may be synchronously detected when the aio_read() system call is made, or asynchronously, at any time there- after. If they are detected at call time, aio_read() returns -1 and sets errno appropriately; otherwise the aio_return() system call must be called, and will return -1, and aio_error() must be called to determine the actual value that would have been returned in errno. [EBADF] The iocb->aio_fildes argument is invalid. [EINVAL] The offset iocb->aio_offset is not valid, the priority specified by iocb->aio_reqprio is not a valid prior- ity, or the number of bytes specified by iocb->aio_nbytes is not valid. [EOVERFLOW] The file is a regular file, iocb->aio_nbytes is greater than zero, the starting offset in iocb->aio_offset is before the end of the file, but is at or beyond the iocb->aio_fildes offset maximum. If the request is successfully enqueued, but subsequently cancelled or an error occurs, the value returned by the aio_return() system call is per the read(2) system call, and the value returned by the aio_error() system call is either one of the error returns from the read(2) system call, or one of: [EBADF] The iocb->aio_fildes argument is invalid for reading. [ECANCELED] The request was explicitly cancelled via a call to aio_cancel(). [EINVAL] The offset iocb->aio_offset would be invalid.
SEE ALSO
aio_cancel(2), aio_error(2), aio_return(2), aio_suspend(2), aio_waitcomplete(2), aio_write(2), aio(4)
STANDARDS
The aio_read() system call is expected to conform to the IEEE Std 1003.1 (``POSIX.1'') standard.
HISTORY
The aio_read() system call first appeared in FreeBSD 3.0.
AUTHORS
This manual page was written by Terry Lambert <terry@whistle.com>.
BUGS
Invalid information in iocb->_aiocb_private may confuse the kernel. FreeBSD 5.4 November 17, 1998 FreeBSD 5.4
SPONSORED LINKS
Man(1) output converted with man2html , sed , awk