Chapter 7


D.2 config.h Header

The GNU autoconf tool was used to aid in the portability of all the source code in this text. It is available from http://ftp.gnu.org/gnu/autoconf. This tool generates a shell script named configure that you must run after downloading the software onto your system. This script determines the features provided by your Unix system: Do socket address structures have a length field? Is multicasting supported? Are datalink socket address structures supported? and so on, generating a header named config.h . This header is the first header included by our unp.h header in the previous section. Figure D.2 shows the config.h header for FreeBSD 5.1.

The lines beginning with #define in column 1 are for features that the system provides. The lines that are commented out and contain #undef are features that the system does not provide.

Figure D.2 Our config.h header for FreeBSD 5.1.

sparc64-unknown-freebsd5.1/config.h

 1 /* config.h. Generated automatically by configure. */   2 /* config.h.in. Generated automatically from configure.in by autoheader. */   3 /* CPU, vendor, and operating system */   4 #define CPU_VENDOR_OS "sparc64-unknown-freebsd5.1"   5 /* Define if <netdb.h> defines struct addrinfo */   6 #define HAVE_ADDRINFO_STRUCT 1   7 /* Define if you have the <arpa/inet.h> header file. */   8 #define HAVE_ARPA_INET_H 1   9 /* Define if you have the bzero function. */  10 #define HAVE_BZERO 1  11 /* Define if the /dev/streams/xtiso/tcp device exists */  12 /* #undef HAVE_DEV_STREAMS_XTISO_TCP */  13 /* Define if the /dev/tcp device exists */  14 /* #undef HAVE_DEV_TCP */  15 /* Define if the /dev/xti/tcp device exists */  16 /* #undef HAVE_DEV_XTI_TCP */  17 /* Define if you have the <errno.h> header file. */  18 #define HAVE_ERRNO_H 1  19 /* Define if you have the <fcntl.h> header file. */  20 #define HAVE_FCNTL_H 1  21 /* Define if you have the getaddrinfo function. */  22 #define HAVE_GETADDRINFO 1  23 /* define if getaddrinfo prototype is in <netdb.h> */  24 #define HAVE_GETADDRINFO_PROTO 1  25 /* Define if you have the gethostbyname2 function. */  26 #define HAVE_GETHOSTBYNAME2 1  27 /* Define if you have the gethostbyname_r function. */  28 /* #undef HAVE_GETHOSTBYNAME_R */  29 /* Define if you have the gethostname function. */  30 #define HAVE_GETHOSTNAME 1  31 /* define if gethostname prototype is in <unistd.h> */  32 #define HAVE_GETHOSTNAME_PROTO 1  33 /* Define if you have the getnameinfo function. */  34 #define HAVE_GETNAMEINFO 1  35 /* define if getnameinfo prototype is in <netdb.h> */  36 #define HAVE_GETNAMEINFO_PROTO 1  37 /* define if getrusage prototype is in <sys/resource.h> */  38 #define HAVE_GETRUSAGE_PROTO 1  39 /* Define if you have the hstrerror function. */  40 #define HAVE_HSTRERROR 1  41 /* define if hstrerror prototype is in <netdb.h> */  42 #define HAVE_HSTRERROR_PROTO 1  43 /* Define if <net/if.h> defines struct if_nameindex */  44 #define HAVE_IF_NAMEINDEX_STRUCT 1  45 /* Define if you have the if_nametoindex function. */  46 #define HAVE_IF_NAMETOINDEX 1  47 /* define if if_nametoindex prototype is in <net/if.h> */  48 #define HAVE_IF_NAMETOINDEX_PROTO 1  49 /* Define if you have the inet_aton function. */  50 #define HAVE_INET_ATON 1  51 /* define if inet_aton prototype is in <arpa/inet.h> */  52 #define HAVE_INET_ATON_PROTO 1  53 /* Define if you have the inet_pton function. */  54 #define HAVE_INET_PTON 1  55 /* define if inet_pton prototype is in <arpa/inet.h> */  56 #define HAVE_INET_PTON_PROTO 1  57 /* Define if you have the kevent function. */  58 #define HAVE_KEVENT 1  59 /* Define if you have the kqueue function. */  60 #define HAVE_KQUEUE 1  61 /* Define if you have the nsl library (-lnsl). */  62 /* #undef HAVE_LIBNSL */  63 /* Define if you have the pthread library (-lpthread). */  64 /* #undef HAVE_LIBPTHREAD */  65 /* Define if you have the pthreads library (-lpthreads). */  66 /* #undef HAVE_LIBPTHREADS */  67 /* Define if you have the resolv library (-lresolv). */  68 /* #undef HAVE_LIBRESOLV */  69 /* Define if you have the xti library (-lxti). */  70 /* #undef HAVE_LIBXTI */  71 /* Define if you have the mkstemp function. */  72 #define HAVE_MKSTEMP 1  73 /* define if struct msghdr contains the msg_control element */  74 #define HAVE_MSGHDR_MSG_CONTROL 1  75 /* Define if you have the <netconfig.h> header file. */  76 #define HAVE_NETCONFIG_H 1  77 /* Define if you have the <netdb.h> header file. */  78 #define HAVE_NETDB_H 1  79 /* Define if you have the <netdir.h> header file. */  80 /* #undef HAVE_NETDIR_H */  81 /* Define if you have the <netinet/in.h> header file. */  82 #define HAVE_NETINET_IN_H 1  83 /* Define if you have the <net/if_dl.h> header file. */  84 #define HAVE_NET_IF_DL_H 1  85 /* Define if you have the poll function. */  86 #define HAVE_POLL 1  87 /* Define if you have the <poll.h> header file. */  88 #define HAVE_POLL_H 1  89 /* Define if you have the pselect function. */  90 #define HAVE_PSELECT 1  91 /* define if pselect prototype is in <sys/stat.h> */  92 #define HAVE_PSELECT_PROTO 1  93 /* Define if you have the <pthread.h> header file. */  94 #define HAVE_PTHREAD_H 1  95 /* Define if you have the <signal.h> header file. */  96 #define HAVE_SIGNAL_H 1  97 /* Define if you have the snprintf function. */  98 #define HAVE_SNPRINTF 1  99 /* define if snprintf prototype is in <stdio.h> */ 100 #define HAVE_SNPRINTF_PROTO 1 101 /* Define if <net/if_dl.h> defines struct sockaddr_dl */ 102 #define HAVE_SOCKADDR_DL_STRUCT 1 103 /* define if socket address structures have length fields */ 104 #define HAVE_SOCKADDR_SA_LEN 1 105 /* Define if you have the sockatmark function. */ 106 #define HAVE_SOCKATMARK 1 107 /* define if sockatmark prototype is in <sys/socket.h> */ 108 #define HAVE_SOCKATMARK_PROTO 1 109 /* Define if you have the <stdio.h> header file. */ 110 #define HAVE_STDIO_H 1 111 /* Define if you have the <stdlib.h> header file. */ 112 #define HAVE_STDLIB_H 1 113 /* Define if you have the <strings.h> header file. */ 114 #define HAVE_STRINGS_H 1 115 /* Define if you have the <string.h> header file. */ 116 #define HAVE_STRING_H 1 117 /* Define if you have the <stropts.h> header file. */ 118 /* #undef HAVE_STROPTS_H */ 119 /* Define if ifr_mtu is member of struct ifreq. */ 120 #define HAVE_STRUCT_IFREQ_IFR_MTU 1 121 /* Define if the system has the type struct sockaddr_storage. */ 122 #define HAVE_STRUCT_SOCKADDR_STORAGE 1 123 /* Define if you have the <sys/event.h> header file. */ 124 #define HAVE_SYS_EVENT_H 1 125 /* Define if you have the <sys/filio.h> header file. */ 126 #define HAVE_SYS_FILIO_H 1 127 /* Define if you have the <sys/ioctl.h> header file. */ 128 #define HAVE_SYS_IOCTL_H 1 129 /* Define if you have the <sys/select.h> header file. */ 130 #define HAVE_SYS_SELECT_H 1 131 /* Define if you have the <sys/socket.h> header file. */ 132 #define HAVE_SYS_SOCKET_H 1 133 /* Define if you have the <sys/sockio.h> header file. */ 134 #define HAVE_SYS_SOCKIO_H 1 135 /* Define if you have the <sys/stat.h> header file. */ 136 #define HAVE_SYS_STAT_H 1 137 /* Define if you have the <sys/sysctl.h> header file. */ 138 #define HAVE_SYS_SYSCTL_H 1 139 /* Define if you have the <sys/time.h> header file. */ 140 #define HAVE_SYS_TIME_H 1 141 /* Define if you have the <sys/types.h> header file. */ 142 #define HAVE_SYS_TYPES_H 1 143 /* Define if you have the <sys/uio.h> header file. */ 144 #define HAVE_SYS_UIO_H 1 145 /* Define if you have the <sys/un.h> header file. */ 146 #define HAVE_SYS_UN_H 1 147 /* Define if you have the <sys/wait.h> header file. */ 148 #define HAVE_SYS_WAIT_H 1 149 /* Define if <time.h> defines struct timespec */ 150 #define HAVE_TIMESPEC_STRUCT 1 151 /* Define if you have the <time.h> header file. */ 152 #define HAVE_TIME_H 1 153 /* Define if you have the <unistd.h> header file. */ 154 #define HAVE_UNISTD_H 1 155 /* Define if you have the vsnprintf function. */ 156 #define HAVE_VSNPRINTF 1 157 /* Define if you have the <xti.h> header file. */ 158 /* #undef HAVE_XTI_H */ 159 /* Define if you have the <xti_inet.h> header file. */ 160 /* #undef HAVE_XTI_INET_H */ 161 /* Define if the system supports IPv4 */ 162 #define IPV4 1 163 /* Define if the system supports IPv6 */ 164 #define IPV6 1 165 /* Define if the system supports IPv4 */ 166 #define IPv4 1 167 /* Define if the system supports IPv6 */ 168 #define IPv6 1 169 /* Define if the system supports IP Multicast */ 170 #define MCAST 1 171 /* the size of the sa_family field in a socket address structure */ 172 /* #undef SA_FAMILY_T */ 173 /* Define if you have the ANSI C header files. */ 174 #define STDC_HEADERS 1 175 /* Define if you can safely include both <sys/time.h> and <time.h>. */ 176 #define TIME_WITH_SYS_TIME 1 177 /* Define if the system supports UNIX domain sockets */ 178 #define UNIXDOMAIN 1 179 /* Define if the system supports UNIX domain sockets */ 180 #define UNIXdomain 1 181 /* 16 bit signed type */ 182 /* #undef int16_t */ 183 /* 32 bit signed type */ 184 /* #undef int32_t */ 185 /* the type of the sa_family struct element */ 186 /* #undef sa_family_t */ 187 /* unsigned integer type of the result of the sizeof operator */ 188 /* #undef size_t */ 189 /* a type appropriate for address */ 190 /* #undef socklen_t */ 191 /* define to __ss_family if sockaddr_storage has that instead of ss_family */ 192 /* #undef ss_family */ 193 /* a signed type appropriate for a count of bytes or an error indication */ 194 /* #undef ssize_t */ 195 /* scalar type */ 196 #define t_scalar_t int32_t 197 /* unsigned scalar type */ 198 #define t_uscalar_t uint32_t 199 /* 16 bit unsigned type */ 200 /* #undef uint16_t */ 201 /* 32 bit unsigned type */ 202 /* #undef uint32_t */ 203         /* -bit unsigned type */ 204 /* #undef uint8_t */ 


UNIX Network Programming Volume 1, Third Edition
Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition)
ISBN: 0131411551
EAN: 2147483647
Year: 2003
Pages: 441

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net