ioctl()

The ioctl() socket call performs special operations on sockets.

Syntax

#include <types.h>
#include <sys\socket.h>
#include <sys\ioctl.h>
#include <net\route.h>
#include <net\if.h>
#include <net\if_arp.h>
int ioctl(s, cmd, data)
int s;
int cmd;
caddr_t data;

Parameters

s

cmd data

Description

This call controls the operating characteristics of sockets. The data parameter is a pointer to data associated with the particular command, and its format depends on the command that is requested.

Option

FIOASYNC FIONBIO FIONREAD

Internet: The following ioctl commands are supported for the internet domain:

Option

OSIOCGIFADDR OSIOCGIFDSTADDR OSIOCGIFBRDADDR OSIOCGIFCONF OSIOCGIFNETMASK SIOCADDMULTI SIOCADDRT SIOCAIFADDR SIOCARP SIOCATMARK SIOCDARP SIOCDELMULTI SIOCDELRT SIOCDIFADDR SIOCGARP SIOCGARP _ TR SIOCGIFADDR SIOCGIFBOUND SIOCGIFBRDADDR SIOCGIFCONF SIOCGIFDSTADDR SIOCGIFEFLAGS SIOCGIFFLAGS SIOCGIFMETRIC SIOCGIFMTU SIOCGIFNETMASK SIOCGIFTRACE SIOCGIFVALID SIOCGMCAST SIOCGMSL SIOCGSTAT SIOCGUNIT SIOCMULTISBC SIOCMULTISFA SIOCSARP SIOCSARP _ TR SIOCSHOSTID SIOCSIF802 _ 3 SIOCSIFADDR SIOCSIFALLRTB SIOCSIFBRD SIOCSIFBRDADDR SIOCSIFDSTADDR SIOCSIFEFLAGS SIOCSIFFDDI SIOCSIFFLAGS SIOCSIFMETRIC SIOCSIFMTU SIOCSIFNETMASK SIOCSIFNO802 _ 3 SIOCSIFNOFDDI SIOCSIFNOREDIR SIOCSIFRUNNINGBLK SIOCSIFTRACE SIOCSIFYESREDIR SIOCSMSL SIOCSRDBRD SIOCSSTAT SIOCSSYN SIOFLUSHRT SIOFLUSHRTIFP SIOSTATCNTAT SIOSTATCNTRT SIOSTATICMP SIOSTATICMPZ SIOSTATIGMP SIOSTATIGMPZ SIOSTATIP SIOSTATIPZ SIOSTATMBUF SIOSTATTCP SIOSTATTCPZ SIOSTATUDP SIOSTATUDPZ

NetBIOS: The following ioctl() calls are supported for the NetBIOS domain:

Option

SIOCGNBNAME SIOCGNCBFN SIOCSNBNAME

Return Values

The value 0 indicates success; the value -1 indicates an error. You can get the specific error code by calling sock_errno() or psock_errno().

sock_errno() Value

SOCENOTSOCK SOCEINVAL SOCEOPNOTSUPP SOCEFAULT

Examples

The following is an example of the ioctl() call.

int s;int dontblock;
int rc;
int ioctl(int s, int cmd, caddr_t data);  /* extracted from sys\socket.h */
...
/* Place the socket into nonblocking mode */
dontblock = 1;
rc = ioctl(s, FIONBIO, (char *) &dontblock);
...

Related Calls


[Back: getsockopt()]
[Next: listen()]