FD_ISSET man page on HP-UX

Man page or keyword search:  
man Server   10987 pages
apropos Keyword Search (all sections)
Output format
HP-UX logo
[printable version]

select(2)							     select(2)

NAME
       select(),  pselect(),  FD_CLR(), FD_ISSET(), FD_SET(), FD_ZERO() - syn‐
       chronous I/O multiplexing

SYNOPSIS
   For UNIX 2003:
   For Standards prior to UNIX 2003:
   For Backward Compatibility Only: (_XOPEN_SOURCE_EXTENDED not defined)

DESCRIPTION
       Prototypes for are available by	including  as  required	 by  standards
       prior to UNIX 2003. The UNIX 2003 standard requires including to expose
       these prototypes along with Refer to the man page  for  information  on
       how  to	compile	 programs by using the correct namespace for different
       UNIX standards.

       The and functions indicate which of the specified file  descriptors  is
       ready  for  reading, ready for writing, or has an error condition pend‐
       ing.  If the specified condition is false for all of the specified file
       descriptors, and block, up to the specified timeout interval, until the
       specified condition is true for at least	 one  of  the  specified  file
       descriptors.

       The  and	 functions support regular files, terminal and pseudo-terminal
       devices, STREAMS-based files, FIFOs and pipes.  The behaviour of and on
       file descriptors that refer to other file types is unspecified.

       The nfds argument specifies the range of file descriptors to be tested.
       The and functions test file descriptors in the range of 0 to  nfds  −1.
       File  descriptor	 f  is represented by the bit 1<<f in the masks.  More
       formally, a file descriptor is represented by:

       If the readfds argument is not a null pointer, it points to  an	object
       of  type	 fd_set	 that  on  input  specifies the file descriptors to be
       checked for being ready to read, and on	output	indicates  which  file
       descriptors are ready to read.

       If  the writefds argument is not a null pointer, it points to an object
       of type fd_set that on input  specifies	the  file  descriptors	to  be
       checked	for  being  ready to write, and on output indicates which file
       descriptors are ready to write.

       If the errorfds argument is not a null pointer, it points to an	object
       of  type	 fd_set	 that  on  input  specifies the file descriptors to be
       checked for error conditions pending, and  on  output  indicates	 which
       file descriptors have error conditions pending.

       On  successful  completion,  the	 objects  pointed  to  by the readfds,
       writefds, and errorfds arguments are modified to	 indicate  which  file
       descriptors  are ready for reading, ready for writing, or have an error
       condition pending, respectively.	 For each file	descriptor  less  than
       nfds,  the corresponding bit will be set on successful completion if it
       was set on input and the associated condition is	 true  for  that  file
       descriptor.

       If  the	timeout argument is not a null pointer, it specifies a maximum
       interval to wait for the selection to complete.	The  timeout  argument
       points  to  an  object  of type for and to an object of type for If the
       members of these structures are 0, or will not block.  If  the  timeout
       argument	 is a null pointer, or will block until an event causes one of
       the masks to be returned with a valid (non-zero) value.	 If  the  time
       limit expires before any event occurs that would cause one of the masks
       to be set to a non-zero value, or completes successfully and returns 0.

       Implementations may place limitations on the maximum  timeout  interval
       supported.   On	all implementations, the maximum timeout interval sup‐
       ported will be at least 31 days.	 If the timeout argument  specifies  a
       timeout	interval  greater  than	 the  implementation-dependent maximum
       value, the maximum value will be used  as  the  actual  timeout	value.
       Implementations	may also place limitations on the granularity of time‐
       out intervals.  If the requested	 timeout  interval  requires  a	 finer
       granularity than the implementation supports, the actual timeout inter‐
       val will be rounded up to the next supported value.

       If sigmask is not a null pointer, then the function shall  replace  the
       signal  mask of the process by the set of signals pointed to by sigmask
       before examining the descriptors, and shall restore the signal mask  of
       the process before returning.

       If  the readfds, writefds, and errorfds arguments are all null pointers
       and the timeout argument is not a null pointer, or blocks for the  time
       specified, or until interrupted by a signal.  If the readfds, writefds,
       and errorfds arguments are all null pointers and the  timeout  argument
       is a null pointer, or blocks until interrupted by a signal.

       File  descriptors  associated with regular files always select true for
       ready to read, ready to write, and error conditions.

       On failure, the objects	pointed	 to  by	 the  readfds,	writefds,  and
       errorfds	 arguments  are not modified.  If the timeout interval expires
       without the specified condition being true for  any  of	the  specified
       file  descriptors, the objects pointed to by the readfds, writefds, and
       errorfds arguments have all bits set to 0.

       Ttys and sockets are ready for reading if a would not block for one  or
       more of the following reasons:

	 ·  input data is available.

	 ·  an error condition exists, such as a broken pipe, no carrier, or a
	    lost connection.

       Similarly, ttys and sockets are ready for writing if a would not	 block
       for one or more of the following reasons:

	 ·  output data can be accepted.

	 ·  an error condition exists, such as a broken pipe, no carrier, or a
	    lost connection.

       TCP sockets select true on reads only for normal	 data.	 They  do  not
       select true on reads if out-of-band data ("urgent" data) arrives.

       TCP sockets select true on exceptions for out-of-band data.

       AF_CCITT	 sockets  select true on reads for normal and out-of-band data
       and information, including supervisory frames.

       Pipes are ready for reading if there is any data in  the	 pipe,	or  if
       there are no writers left for the pipe.	Pipes are ready for writing if
       there is room for more data in the pipe AND there are one or more read‐
       ers  for	 the pipe, OR there are no readers left for the pipe.  returns
       the same results for a pipe whether a file descriptor  associated  with
       the read-only end or the write-only end of the pipe is used, since both
       file descriptors refer to the same underlying pipe.  So a  of  a	 read-
       only file descriptor that is associated with a pipe can return ready to
       write, even though that particular file descriptor  cannot  be  written
       to.

       File descriptor masks of type fd_set can be initialized and tested with
       and It is unspecified whether each of these is a macro or  a  function.
       If  a macro definition is suppressed in order to access an actual func‐
       tion, or a program defines an external identifier  with	any  of	 these
       names, the behaviour is undefined.
       Clears  the  bit	 for the file descriptor fd in the file descriptor set
       fdset.

       Returns a non-zero value if the bit for the file descriptor
	      fd is set in the file descriptor set pointed to by fdset, and  0
	      otherwise.

       Sets the bit for the file descriptor
	      fd in the file descriptor set fdset.

       Initializes the file descriptor set
	      fdset to have zero bits for all file descriptors.	 The behaviour
	      of these macros is undefined if the fd argument is less  than  0
	      or greater than or equal to

       The use of a timeout does not affect any pending timers set up by or

       On successful completion, the object pointed to by the timeout argument
       of may be modified.

       The is used in the definition of structure.  It is set to  a  value  of
       2048  to accommodate 2048 file descriptors.  Any user code that uses or
       the structure should redefine to a smaller value (greater than or equal
       to  the	number	of  open files the process will have) in order to save
       space and execution time.  Similarly, any user code that wants to  test
       more  than 2048 file descriptors should redefine to the required higher
       value.

       The user can also allocate the space for structure dynamically, depend‐
       ing  upon  the  number of file descriptors to be tested.	 The following
       code segment illustrates the basic concepts.

RETURN VALUE
       and return  no  value.  returns a non-zero value if  the	 bit  for  the
       file  descriptor	 fd  is	 set  in the file descriptor set pointed to by
       fdset, and 0 otherwise.

       On successful completion, and return the total number of	 bits  set  in
       the  bit	 masks.	 Otherwise, −1 is returned, and is set to indicate the
       error.

ERRORS
       Under the following conditions, and fail and set to:

       One or more of the file descriptor sets specified a file descriptor
		      that is not a valid open file  descriptor.   This	 could
		      happen  either  if the file descriptor sets are not ini‐
		      tialized or nfds argument is greater than

       The function was interrupted before any of the
		      selected events occurred and before the timeout interval
		      expired.	 If  has been set for the interrupting signal,
		      it  is  implementation-dependent	whether	 the  function
		      restarts or returns with

       One or more of the pointers was invalid.
		      The  reliable  detection of this error is implementation
		      dependent.

       An invalid timeout interval was specified.
		      Valid values for the number of nanoseconds (in should be
		      a non-negative integer less than 1,000,000,000.  For the
		      number of microseconds (in struct timeval), a  non-nega‐
		      tive  integer  less than 1,000,000 should be used.  Sec‐
		      onds should be specified using a non-negative integer.

       The	      nfds argument is less than 0,  or	 is  greater  than  or
		      equal to the value of which specifies the absolute maxi‐
		      mum number of files a process can have open at one time.
		      If  the  resource	 limit	for  a process is less than or
		      equal to 2048, is considered to be 2048.

       One of the specified file descriptors refers to a STREAM or
		      multiplexer that	is  linked  (directly  or  indirectly)
		      downstream from a multiplexer.

EXAMPLES
       The  following call to checks if any of 4 terminals are ready for read‐
       ing.  times out after 5 seconds if no terminals are ready for  reading.
       Note that the code for opening the terminals or reading from the termi‐
       nals is not shown in this example.  Also, note that this	 example  must
       be  modified  if	 the calling process has more than 32 file descriptors
       open.  Following this first example is an example of select  with  more
       than 32 file descriptors.

       The  following example is the same as the previous example, except that
       it works for more than 32 open files.  Definitions for and are in

WARNINGS
       The file descriptor masks are always modified on return,	 even  if  the
       call returns as the result of a timeout.

DEPENDENCIES
       supports the following devices and file types:

	 ·  pipes
	 ·  fifo special files (named pipes)
	 ·  all serial devices
	 ·  All ITEs (internal terminal emulators) and HP-HIL input devices
	 ·  lan(7) special files
	 ·  pty(7) special files
	 ·  sockets

AUTHOR
       was developed by HP and the University of California, Berkeley.

SEE ALSO
       fcntl(2), poll(2), read(2), sigprocmask(2), write(2), thread_safety(5),
       standards(5),

								     select(2)
[top]

List of man pages available for HP-UX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net