Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ poll(2) — DG/UX 5.4.2A

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getmsg(2)

putmsg(2)

select(2)



poll(2)                          DG/UX 5.4.2                         poll(2)


NAME
       poll - input/output multiplexing

SYNOPSIS
       #include <poll.h>
       #include <stropts.h>

       int  poll (polldescriptorarray, arraysize, timeout)
       struct pollfd  polldescriptorarray[];
       unsigned long  arraysize;
       int  timeout;

   where:
       polldescriptorarray An array of pollfd structures describing the
                             files and conditions to be checked.  On output,
                             the conditions that are actually true are
                             filled in.

       arraysize            The number of entries in the array

       timeout               A value specifying the timeout interval

DESCRIPTION
       poll provides users with a mechanism for multiplexing input/output
       over a set of file descriptors that reference open files.  poll
       identifies those files on which a user can read or write data, or on
       which certain events have occurred.

       polldescriptorarray specifies the file descriptors to be examined
       and the events of interest for each file descriptor.  It is a pointer
       to an array with one element for each open file descriptor of
       interest.  The array's elements are pollfd structures, which contain
       the following members:

       fd        A file descriptor to an open file.

       events    A flag word describing the conditions for which the stream
                 is being checked.

       revents   Ignored on input.  On output, this flag word reports the
                 conditions that have been true at some time since the start
                 of the system call.

       fd specifies an open file descriptor and events and revents are
       bitmasks constructed by an OR of any combination of the following
       event flags:

       POLLIN                Data other than high priority data may be read
                             without blocking.  For STREAMS, this flag is
                             set even if the message is of zero length.

       POLLRDNORM            Normal data (priority band = 0) may be read
                             without blocking.  For STREAMS, this flag is
                             set even if the message is of zero length.



Licensed material--property of copyright holder(s)                         1




poll(2)                          DG/UX 5.4.2                         poll(2)


       POLLRDBAND            Data from a non-zero priority band may be read
                             without blocking.  For STREAMS, this flag is
                             set even if the message is of zero length.

       POLLPRI               High priority data may be received without
                             blocking. For STREAMS, this flag is set even if
                             the message is of zero length.

       POLLOUT               Normal data may be written without blocking.

       POLLWRNORM            The same as POLLOUT.

       POLLWRBAND            Priority data (priority band > 0) may be
                             written.  This event only examines bands that
                             have been written to at least once.

       POLLMSG               An MSIG or MPCSIG message containing the
                             SIGPOLL signal has reached the front of the
                             stream head read queue.

       POLLERR               An error has occurred on the device or stream.
                             This flag is only valid in the revents bitmask;
                             it is not used in the events field.

       POLLHUP               A hangup has occurred on the stream.  This
                             event and POLLOUT are mutually exclusive; a
                             stream can never be writable if a hangup has
                             occurred.  However, this event and POLLIN,
                             POLLRDNORM, POLLRDBAND, or POLLPRI are not
                             mutually exclusive.  This flag is only valid in
                             the revents bitmask; it is not used in the
                             events field.

       POLLNVAL              The specified fd value does not belong to an
                             open file.  This flag is only valid in the
                             revents field; it is not used in the events
                             field.

       For each element of the array pointed to by polldescriptorarray,
       poll examines the given file descriptor for the event(s) specified in
       events.  The number of file descriptors to be examined is specified
       by arraysize.

       If the value fd is less than zero, events is ignored and revents is
       set to 0 in that entry on return from poll .

       The results of the poll query are stored in the revents field in the
       pollfd structure.  Bits are set in the revents bitmask to indicate
       which of the requested events are true.  If none are true, none of
       the specified bits are set in revents when the poll call returns.
       The event flags POLLHUP, POLLERR, and POLLNVAL are always set in
       revents if the conditions they indicate are true; this occurs even
       though these flags were not present in events.  Note that the
       remaining conditions are not guaranteed to be true when the system



Licensed material--property of copyright holder(s)                         2




poll(2)                          DG/UX 5.4.2                         poll(2)


       call returns.  All of those conditions that have been true since the
       start of the call are reported.

       If none of the defined events have occurred on any selected file
       descriptor, poll waits at least timeout milliseconds for an event to
       occur on any of the selected file descriptors.  If the value timeout
       is 0, poll returns immediately.  If the value of timeout is INFTIM
       (or -1), poll blocks until a requested event occurs or until the call
       is interrupted.  poll is not affected by the ONDELAY and ONONBLOCK
       flags.  Poll does not wait for the full timeout interval to elapse if
       one of the reportable conditions becomes true.

ACCESS CONTROL
       None.

RETURN VALUE
       0              Poll timed out and none of the reportable conditions
                      are true on the streams of interest.

       1 ... arraysize
                      The number of streams for which one or more conditions
                      are reported.

       -1             The poll failed.  errno indicates the error.

DIAGNOSTICS
       Errno may be set to one of the following error codes:

       EAGAIN    Memory was not available to do the poll.

       EFAULT    The poll descriptor array did not lie entirely within the
                 caller's readable and writable address space.

       EINTR     A signal was caught during the poll call.

       EINVAL    arraysize is less than zero or greater than the configured
                 number of file descriptors.

SEE ALSO
       getmsg(2), putmsg(2), select(2).

















Licensed material--property of copyright holder(s)                         3


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026