diff options
author | Roland McGrath <roland@gnu.org> | 1995-02-18 01:27:10 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1995-02-18 01:27:10 +0000 |
commit | 28f540f45bbacd939bfd07f213bcad2bf730b1bf (patch) | |
tree | 15f07c4c43d635959c6afee96bde71fb1b3614ee /misc/ioctltst.c | |
download | glibc-28f540f45bbacd939bfd07f213bcad2bf730b1bf.tar.gz |
initial import
Diffstat (limited to 'misc/ioctltst.c')
-rw-r--r-- | misc/ioctltst.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/misc/ioctltst.c b/misc/ioctltst.c new file mode 100644 index 0000000000..3e8ea997eb --- /dev/null +++ b/misc/ioctltst.c @@ -0,0 +1,55 @@ +#include <stdio.h> +#include <errno.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <sys/ioctl.h> +#include <net/if.h> +#include <netinet/in.h> + +/* + * open a socket, get the process group information of the socket, and use the + * socket to get the network interface configuration list + */ +main() +{ + int sock; + int ioctl_result; + + /* get a socket */ + sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); + if (sock < 0) + { + perror("Cannot create socket"); + exit(1); + } + + /* use ioctl() to get the process group information */ + { + int get_process_group; + + ioctl_result = ioctl(sock, SIOCGPGRP, (char *) &get_process_group); + + if (ioctl_result < 0) + { + int my_errno = errno; + + fprintf(stderr, "errno %d ", my_errno); + perror("ioctl(get process group)"); + } + } + + /* use ioctl() to get the interface configuration list */ + { + static struct ifconf ifc; /* init to 0 */ + + ioctl_result = ioctl(sock, SIOCGIFCONF, (char *) &ifc); + + if (ioctl_result < 0) + { + int my_errno = errno; + + fprintf(stderr, "errno %d ", my_errno); + perror("ioctl(get interface configuration list)"); + } + } +} |