| .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later | 
 | .. c:namespace:: MC | 
 |  | 
 | .. _request-func-poll: | 
 |  | 
 | ************** | 
 | request poll() | 
 | ************** | 
 |  | 
 | Name | 
 | ==== | 
 |  | 
 | request-poll - Wait for some event on a file descriptor | 
 |  | 
 | Synopsis | 
 | ======== | 
 |  | 
 | .. code-block:: c | 
 |  | 
 |     #include <sys/poll.h> | 
 |  | 
 | .. c:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout ) | 
 |  | 
 | Arguments | 
 | ========= | 
 |  | 
 | ``ufds`` | 
 |    List of file descriptor events to be watched | 
 |  | 
 | ``nfds`` | 
 |    Number of file descriptor events at the \*ufds array | 
 |  | 
 | ``timeout`` | 
 |    Timeout to wait for events | 
 |  | 
 | Description | 
 | =========== | 
 |  | 
 | With the :c:func:`poll()` function applications can wait | 
 | for a request to complete. | 
 |  | 
 | On success :c:func:`poll()` returns the number of file | 
 | descriptors that have been selected (that is, file descriptors for which the | 
 | ``revents`` field of the respective struct :c:type:`pollfd` | 
 | is non-zero). Request file descriptor set the ``POLLPRI`` flag in ``revents`` | 
 | when the request was completed.  When the function times out it returns | 
 | a value of zero, on failure it returns -1 and the ``errno`` variable is | 
 | set appropriately. | 
 |  | 
 | Attempting to poll for a request that is not yet queued will | 
 | set the ``POLLERR`` flag in ``revents``. | 
 |  | 
 | Return Value | 
 | ============ | 
 |  | 
 | On success, :c:func:`poll()` returns the number of | 
 | structures which have non-zero ``revents`` fields, or zero if the call | 
 | timed out. On error -1 is returned, and the ``errno`` variable is set | 
 | appropriately: | 
 |  | 
 | ``EBADF`` | 
 |     One or more of the ``ufds`` members specify an invalid file | 
 |     descriptor. | 
 |  | 
 | ``EFAULT`` | 
 |     ``ufds`` references an inaccessible memory area. | 
 |  | 
 | ``EINTR`` | 
 |     The call was interrupted by a signal. | 
 |  | 
 | ``EINVAL`` | 
 |     The ``nfds`` value exceeds the ``RLIMIT_NOFILE`` value. Use | 
 |     ``getrlimit()`` to obtain this value. |