The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

aio_error (3)
  • aio_error (2) ( FreeBSD man: Системные вызовы )
  • >> aio_error (3) ( Solaris man: Библиотечные вызовы )
  • aio_error (3) ( Linux man: Библиотечные вызовы )
  • aio_error (3) ( POSIX man: Библиотечные вызовы )
  •  

    NAME

    aio_error - retrieve errors status for an asynchronous I/O operation
     
    

    SYNOPSIS

    #include <aio.h>
    
    int aio_error(const struct aiocb *aiocbp);
    

     

    DESCRIPTION

    The aio_error() function returns the error status associated with the aiocb structure referenced by the aiocbp argument. The error status for an asynchronous I/O operation is the errno value that would be set by the corresponding read(2), write(2), or fsync(3C) operation. If the operation has not yet completed, then the error status will be equal to EINPROGRESS.  

    RETURN VALUES

    If the asynchronous I/O operation has completed successfully, then 0 is returned. If the asynchronous operation has completed unsuccessfully, then the error status, as described for read(2), write(2), and fsync(3C), is returned. If the asynchronous I/O operation has not yet completed, then EINPROGRESS is returned.  

    ERRORS

    The aio_error() function may fail if:

    EINVAL

    The aiocbp argument does not refer to an asynchronous operation whose return status has not yet been retrieved.

     

    USAGE

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

    EXAMPLES

    Example 1 The following is an example of an error handling routine using the aio_error() function.

    #include <aio.h>
    #include <errno.h>
    #include <signal.h>
    struct aiocb      my_aiocb;
    struct sigaction  my_sigaction;
    void              my_aio_handler(int, siginfo_t *, void *);
    ...
    my_sigaction.sa_flags = SA_SIGINFO;
    my_sigaction.sa_sigaction = my_aio_handler;
    sigemptyset(&my_sigaction.sa_mask);
    (void) sigaction(SIGRTMIN, &my_sigaction, NULL);
    ...
    my_aiocb.aio_sigevent.sigev_notify = SIGEV_SIGNAL;
    my_aiocb.aio_sigevent.sigev_signo = SIGRTMIN;
    my_aiocb.aio_sigevent.sigev_value.sival_ptr = &myaiocb;
    ...
    (void) aio_read(&my_aiocb);
    ...
    void
    my_aio_handler(int signo, siginfo_t *siginfo, void *context) {
    int     my_errno;
    struct aiocb    *my_aiocbp;
    
    my_aiocbp = siginfo->si_value.sival_ptr;
       if ((my_errno = aio_error(my_aiocb)) != EINPROGRESS) {
           int my_status = aio_return(my_aiocb);
               if (my_status >= 0){ /* start another operation */
                       ...
               } else        { /* handle I/O error */
                        ...
               }
       }
    }
    

     

    ATTRIBUTES

    See attributes(5) for descriptions of the following attributes:

    ATTRIBUTE TYPEATTRIBUTE VALUE

    Interface StabilityCommitted

    MT-Level

    Standard

     

    SEE ALSO

    _Exit(2), close(2), fork(2), lseek(2), read(2), write(2), aio.h(3HEAD), aio_cancel(3C), aio_fsync(3C), aio_read(3C), aio_return(3C), aio_write(3C), lio_listio(3C), signal.h(3HEAD), attributes(5), lf64(5), standards(5)


     

    Index

    NAME
    SYNOPSIS
    DESCRIPTION
    RETURN VALUES
    ERRORS
    USAGE
    EXAMPLES
    ATTRIBUTES
    SEE ALSO


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру