TCP/IP Programming Manual
• The FIONBIO command is not supported. If this command is selected, the EINVAL error is
returned.
• If you select FIONREAD for UDP sockets, the number of characters returned is greater than
the number of characters received as a result of a call to the recv or recvfrom functions;
the increase in characters is equal to sizeof (struct sockaddr_in). The additional
characters are returned because the network keeps the sender’s socket address at the beginning
of the data until the application requests the data.
• UDP does not support out-of-band data. Use of the command argument SIOCATMARK is
meaningless for UDP, although specifying SIOCATMARK does not cause the call to fail.
• The SIOCSIFFLAGS function is now disabled. The call completes successfully but no flags
are changed.
• For SIOCGIFCONF, the data-buffer pointer (ifc_buf) must point to the first byte immediately
following the ifconf structure, because the Parallel Library TCP/IP, NonStop TCP/IPv6, and
NonStop TCP/IP architectures allow only a single buffer to be passed.
• For SIOCGIFNUM, aliases are not included in the count.
See Nowait Call Errors (page 86) for information on error checking.
Socket I/O Control Operations
Table 16 gives the I/O control operations that can be specified in command, the corresponding
pointer types for arg_ptr, and descriptions of the commands. The definitions of the structures
pointed to by arg_ptr are provided in Chapter 3 (page 62).
Table 16 Socket I/O Control Operations
DescriptionPointer Type for argCommand
Get the number of bytes waiting to be
read.
int *FIONREAD
Set the interface address. Returns the
error [EOPNOTSUPP].
struct ifreq *SIOCSIFADDR
Get the interface address.struct ifreq *SIOCGIFADDR
Get the interface configuration list. See
Usage Guidelines (page 198).
struct ifconf *SIOCGIFCONF
Get the number of interfaces that have
been configured. See Usage Guidelines
(page 198).
int *SIOCGIFNUM
Set the destination address on a
point-to-point interface. Returns the error
[EOPNOTSUPP].
struct ifreq *SIOCSIFDSTADDR
Get the destination address on a
point-to-point interface.
struct ifreq *SIOCGIFDSTADDR
Set the interface flags. Returns the error
[EOPNOTSUPP].
struct ifreq *SIOCSIFFLAGS
Get the interface flags.struct ifreq *SIOCGIFFLAGS
Add a specific route.struct rtentry *SIOCADDRT
Delete a specific route.struct rtentry *SIOCDELRT
Check for pending urgent data. If a
nonzero value is returned, urgent data
is pending.
int *SIOCATMARK
socket_ioctl, socket_ioctl_nw 199