aio_read(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

aio_read(3c)

aio_read(3C)             Standard C Library Functions             aio_read(3C)

NAME
       aio_read - asynchronous read from a file

SYNOPSIS
       #include <aio.h>

       int aio_read(struct aiocb *aiocbp);

DESCRIPTION
       The   aio_read()   function   allows   the   calling  process  to  read
       aiocbp->aio_nbytes from the  file  associated  with  aiocbp->aio_fildes
       into  the  buffer  pointed to by aiocbp->aio_buf. The function call re‐
       turns when the read request has been initiated or queued to the file or
       device (even  when  the  data  cannot  be  delivered  immediately).  If
       _POSIX_PRIORITIZED_IO  is  defined and prioritized I/O is supported for
       this file, then the asynchronous operation is submitted at  a  priority
       equal  to  the scheduling priority of the process minus aiocbp->aio_re‐
       qprio. The aiocbp value may be used as an argument to aio_error(3C) and
       aio_return(3C) in order to determine the error status and  return  sta‐
       tus,  respectively,  of the asynchronous operation while it is proceed‐
       ing. If an error condition is encountered during queuing, the  function
       call  returns  without  having initiated or queued the request. The re‐
       quested operation takes place at the absolute position in the  file  as
       given  by  aio_offset,  as if lseek(2) were called immediately prior to
       the operation with an offset equal to aio_offset and a whence equal  to
       SEEK_SET. After a successful call to enqueue an asynchronous I/O opera‐
       tion, the value of the file offset for the file is unspecified.


       The  aiocbp->aio_sigevent structure defines what asynchronous notifica‐
       tion is to occur when the asynchronous operation completes,  as  speci‐
       fied in signal.h(3HEAD).


       If  SIGEV_MEM  sigevent  type is specified, the error and return values
       are updated in the aiocb_t structure when I/O  is  completed.  Applica‐
       tions  can get the error value using aio_error(3C) and the return value
       using aio_return(3C). For SIGEV_MEM  sigevent  type  requests,  aio_er‐
       ror(3C)  and  aio_return(3C)  simply return the error and return values
       from the structure, no system calls are involved. While the I/O  is  in
       progress  an  EINPROGRESS  error is returned. I/O completion can be de‐
       tected by monitoring the error value returned by aio_error(3C).


       I/O completion notifications of SIGEV_MEM sigevent type requests cannot
       be collected using aio_waitn(3C) or aio_suspend(3C) calls.


       The aiocbp->aio_lio_opcode field is ignored by aio_read().


       The aiocbp argument points to an aiocb structure. If the buffer pointed
       to by aiocbp->aio_buf or the control block pointed to by aiocbp becomes
       an illegal address prior to asynchronous I/O completion, then  the  be‐
       havior is undefined.


       Simultaneous  asynchronous operations using the same aiocbp produce un‐
       defined results.


       If _POSIX_SYNCHRONIZED_IO is defined and synchronized I/O is enabled on
       the file associated with aiocbp->aio_fildes, the behavior of this func‐
       tion is according to the definitions of synchronized I/O data integrity
       completion and synchronized I/O file integrity completion.


       For any system action that changes the process memory  space  while  an
       asynchronous I/O is outstanding to the address range being changed, the
       result of that action is undefined.


       For  regular files, no data transfer will occur past the offset maximum
       established   in   the   open   file   description   associated    with
       aiocbp->aio_fildes.

RETURN VALUES
       The aio_read() function returns 0 to the calling process if the I/O op‐
       eration  is successfully queued; otherwise, the function returns −1 and
       sets errno to indicate the error.

ERRORS
       The aio_read() function will fail if:

       EAGAIN    The requested asynchronous I/O operation was not  queued  due
                 to system resource limitations.



       Each  of  the following conditions may be detected synchronously at the
       time of the call to aio_read(), or asynchronously. If any of the condi‐
       tions below are detected synchronously, the aio_read() function returns
       -1 and sets errno to the corresponding value. If any of the  conditions
       below  are  detected asynchronously, the return status of the asynchro‐
       nous operation is set to −1, and the error status of  the  asynchronous
       operation will be set to the corresponding value.

       EBADF     The  aiocbp->aio_fildes argument is not a valid file descrip‐
                 tor open for reading.


       EINVAL    The file offset value implied by aiocbp->aio_offset would  be
                 invalid,   aiocbp->aio_reqprio  is  not  a  valid  value,  or
                 aiocbp->aio_nbytes is an invalid value.



       In the case that the aio_read() successfully queues the  I/O  operation
       but  the operation is subsequently canceled or encounters an error, the
       return status of the asynchronous operation is one of the  values  nor‐
       mally  returned  by  the  read(2) function call. In addition, the error
       status of the asynchronous operation will be set to one  of  the  error
       statuses  normally  set by the read() function call, or one of the fol‐
       lowing values:

       EBADF        The aiocbp->aio_fildes argument is not a  valid  file  de‐
                    scriptor open for reading.


       ECANCELED    The  requested  I/O  was canceled before the I/O completed
                    due to an explicit aio_cancel(3C) request.


       EINVAL       The file offset value implied by aiocbp->aio_offset  would
                    be invalid.



       The  following  condition  may  be  detected synchronously or asynchro‐
       nously:

       EOVERFLOW    The file is a regular file, aiocbp->aio_nbytes is  greater
                    than  0  and  the starting offset in aiocbp->aio_offset is
                    before the end-of-file and is at or beyond the offset max‐
                    imum  in  the  open  file  description   associated   with
                    aiocbp->aio_fildes.


USAGE
       For portability, the application should set aiocbp->aio_reqprio to 0.


       The  aio_read()  function  has a transitional interface for 64-bit file
       offsets. See lf64(7).

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE  VALUE _ Interface StabilityCommitted _ MT-LevelMT-Safe _ Stan‐
       dardSee standards(7).


SEE ALSO
       close(2),  exec(2),  exit(2),  fork(2),  lseek(2),  read(2),  write(2),
       aio_cancel(3C),   aio_return(3C),  lio_listio(3C),  aio.h(3HEAD),  sig‐
       info.h(3HEAD), signal.h(3HEAD), attributes(7), lf64(7), standards(7)

Oracle Solaris 11.4               17 Aug 2018                     aio_read(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3