《UNIX网络编程》中的unp.h文件和config.h文件

来源:互联网 发布:熊片数据库kfb 编辑:程序博客网 时间:2024/06/07 08:12

《UNIX网络编程》一书中大量使用了作者自己编写的包裹函数,这些函数的声明统统写在了 unp.h 头文件中,现在将这个头文件写在博文里,方便以后查看。

注意:unp.h 和 config.h的生成, 可以上本书官网 http://www.unpbook.com/下载源代码,根据README中的使用方法生成 ,除了这两个头文件外还需要相关静态库文件的支持。笔者系统环境为Ubuntu 17.04 amd64

unp.h:

/* include unph *//* Our own header.  Tabs are set for 4 spaces, not 8 */#ifndef __unp_h#define __unp_h#include    "../config.h"   /* configuration options for current OS */                            /* "../config.h" is generated by configure *//* If anything changes in the following list of #includes, must change   acsite.m4 also, for configure's tests. */#include    <sys/types.h>   /* basic system data types */#include    <sys/socket.h>  /* basic socket definitions */#if TIME_WITH_SYS_TIME#include    <sys/time.h>    /* timeval{} for select() */#include    <time.h>        /* timespec{} for pselect() */#else#if HAVE_SYS_TIME_H#include    <sys/time.h>    /* includes <time.h> unsafely */#else#include    <time.h>        /* old system? */#endif#endif#include    <netinet/in.h>  /* sockaddr_in{} and other Internet defns */#include    <arpa/inet.h>   /* inet(3) functions */#include    <errno.h>#include    <fcntl.h>       /* for nonblocking */#include    <netdb.h>#include    <signal.h>#include    <stdio.h>#include    <stdlib.h>#include    <string.h>#include    <sys/stat.h>    /* for S_xxx file mode constants */#include    <sys/uio.h>     /* for iovec{} and readv/writev */#include    <unistd.h>#include    <sys/wait.h>#include    <sys/un.h>      /* for Unix domain sockets */#ifdef  HAVE_SYS_SELECT_H# include   <sys/select.h>  /* for convenience */#endif#ifdef  HAVE_SYS_SYSCTL_H#ifdef  HAVE_SYS_PARAM_H# include   <sys/param.h>   /* OpenBSD prereq for sysctl.h */#endif# include   <sys/sysctl.h>#endif#ifdef  HAVE_POLL_H# include   <poll.h>        /* for convenience */#endif#ifdef  HAVE_SYS_EVENT_H# include   <sys/event.h>   /* for kqueue */#endif#ifdef  HAVE_STRINGS_H# include   <strings.h>     /* for convenience */#endif/* Three headers are normally needed for socket/file ioctl's: * <sys/ioctl.h>, <sys/filio.h>, and <sys/sockio.h>. */#ifdef  HAVE_SYS_IOCTL_H# include   <sys/ioctl.h>#endif#ifdef  HAVE_SYS_FILIO_H# include   <sys/filio.h>#endif#ifdef  HAVE_SYS_SOCKIO_H# include   <sys/sockio.h>#endif#ifdef  HAVE_PTHREAD_H# include   <pthread.h>#endif#ifdef HAVE_NET_IF_DL_H# include   <net/if_dl.h>#endif#ifdef HAVE_NETINET_SCTP_H#include    <netinet/sctp.h>#endif/* OSF/1 actually disables recv() and send() in <sys/socket.h> */#ifdef  __osf__#undef  recv#undef  send#define recv(a,b,c,d)   recvfrom(a,b,c,d,0,0)#define send(a,b,c,d)   sendto(a,b,c,d,0,0)#endif#ifndef INADDR_NONE/* $$.Ic INADDR_NONE$$ */#define INADDR_NONE 0xffffffff  /* should have been in <netinet/in.h> */#endif#ifndef SHUT_RD             /* these three POSIX names are new */#define SHUT_RD     0   /* shutdown for reading */#define SHUT_WR     1   /* shutdown for writing */#define SHUT_RDWR   2   /* shutdown for reading and writing *//* $$.Ic SHUT_RD$$ *//* $$.Ic SHUT_WR$$ *//* $$.Ic SHUT_RDWR$$ */#endif/* *INDENT-OFF* */#ifndef INET_ADDRSTRLEN/* $$.Ic INET_ADDRSTRLEN$$ */#define INET_ADDRSTRLEN     16  /* "ddd.ddd.ddd.ddd\0"                                    1234567890123456 */#endif/* Define following even if IPv6 not supported, so we can always allocate   an adequately sized buffer without #ifdefs in the code. */#ifndef INET6_ADDRSTRLEN/* $$.Ic INET6_ADDRSTRLEN$$ */#define INET6_ADDRSTRLEN    46  /* max size of IPv6 address string:                   "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx" or                   "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:ddd.ddd.ddd.ddd\0"                    1234567890123456789012345678901234567890123456 */#endif/* *INDENT-ON* *//* Define bzero() as a macro if it's not in standard C library. */#ifndef HAVE_BZERO#define bzero(ptr,n)        memset(ptr, 0, n)/* $$.If bzero$$ *//* $$.If memset$$ */#endif/* Older resolvers do not have gethostbyname2() */#ifndef HAVE_GETHOSTBYNAME2#define gethostbyname2(host,family)     gethostbyname((host))#endif/* The structure returned by recvfrom_flags() */struct unp_in_pktinfo {  struct in_addr    ipi_addr;   /* dst IPv4 address */  int               ipi_ifindex;/* received interface index */};/* $$.It unp_in_pktinfo$$ *//* $$.Ib ipi_addr$$ *//* $$.Ib ipi_ifindex$$ *//* We need the newer CMSG_LEN() and CMSG_SPACE() macros, but few   implementations support them today.  These two macros really need    an ALIGN() macro, but each implementation does this differently. */#ifndef CMSG_LEN/* $$.Im CMSG_LEN$$ */#define CMSG_LEN(size)      (sizeof(struct cmsghdr) + (size))#endif#ifndef CMSG_SPACE/* $$.Im CMSG_SPACE$$ */#define CMSG_SPACE(size)    (sizeof(struct cmsghdr) + (size))#endif/* POSIX requires the SUN_LEN() macro, but not all implementations DefinE   it (yet).  Note that this 4.4BSD macro works regardless whether there is   a length field or not. */#ifndef SUN_LEN/* $$.Im SUN_LEN$$ */# define    SUN_LEN(su) \    (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path))#endif/* POSIX renames "Unix domain" as "local IPC."   Not all systems DefinE AF_LOCAL and PF_LOCAL (yet). */#ifndef AF_LOCAL#define AF_LOCAL    AF_UNIX#endif#ifndef PF_LOCAL#define PF_LOCAL    PF_UNIX#endif/* POSIX requires that an #include of <poll.h> DefinE INFTIM, but many   systems still DefinE it in <sys/stropts.h>.  We don't want to include   all the STREAMS stuff if it's not needed, so we just DefinE INFTIM here.   This is the standard value, but there's no guarantee it is -1. */#ifndef INFTIM#define INFTIM          (-1)    /* infinite poll timeout *//* $$.Ic INFTIM$$ */#ifdef  HAVE_POLL_H#define INFTIM_UNPH             /* tell unpxti.h we defined it */#endif#endif/* Following could be derived from SOMAXCONN in <sys/socket.h>, but many   kernels still #define it as 5, while actually supporting many more */#define LISTENQ     1024    /* 2nd argument to listen() *//* Miscellaneous constants */#define MAXLINE     4096    /* max text line length */#define BUFFSIZE    8192    /* buffer size for reads and writes *//* Define some port number that can be used for our examples */#define SERV_PORT        9877           /* TCP and UDP */#define SERV_PORT_STR   "9877"          /* TCP and UDP */#define UNIXSTR_PATH    "/tmp/unix.str" /* Unix domain stream */#define UNIXDG_PATH     "/tmp/unix.dg"  /* Unix domain datagram *//* $$.ix [LISTENQ]~constant,~definition~of$$ *//* $$.ix [MAXLINE]~constant,~definition~of$$ *//* $$.ix [BUFFSIZE]~constant,~definition~of$$ *//* $$.ix [SERV_PORT]~constant,~definition~of$$ *//* $$.ix [UNIXSTR_PATH]~constant,~definition~of$$ *//* $$.ix [UNIXDG_PATH]~constant,~definition~of$$ *//* Following shortens all the typecasts of pointer arguments: */#define SA  struct sockaddr#ifndef HAVE_STRUCT_SOCKADDR_STORAGE/* * RFC 3493: protocol-independent placeholder for socket addresses */#define __SS_MAXSIZE    128#define __SS_ALIGNSIZE  (sizeof(int64_t))#ifdef HAVE_SOCKADDR_SA_LEN#define __SS_PAD1SIZE   (__SS_ALIGNSIZE - sizeof(u_char) - sizeof(sa_family_t))#else#define __SS_PAD1SIZE   (__SS_ALIGNSIZE - sizeof(sa_family_t))#endif#define __SS_PAD2SIZE   (__SS_MAXSIZE - 2*__SS_ALIGNSIZE)struct sockaddr_storage {#ifdef HAVE_SOCKADDR_SA_LEN    u_char      ss_len;#endif    sa_family_t ss_family;    char        __ss_pad1[__SS_PAD1SIZE];    int64_t     __ss_align;    char        __ss_pad2[__SS_PAD2SIZE];};#endif#define FILE_MODE   (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)                    /* default file access permissions for new files */#define DIR_MODE    (FILE_MODE | S_IXUSR | S_IXGRP | S_IXOTH)                    /* default permissions for new directories */typedef void    Sigfunc(int);   /* for signal handlers */#define min(a,b)    ((a) < (b) ? (a) : (b))#define max(a,b)    ((a) > (b) ? (a) : (b))#ifndef HAVE_ADDRINFO_STRUCT# include   "../lib/addrinfo.h"#endif#ifndef HAVE_IF_NAMEINDEX_STRUCTstruct if_nameindex {  unsigned int   if_index;  /* 1, 2, ... */  char          *if_name;   /* null-terminated name: "le0", ... */};/* $$.It if_nameindex$$ *//* $$.Ib if_index$$ *//* $$.Ib if_name$$ */#endif#ifndef HAVE_TIMESPEC_STRUCTstruct timespec {  time_t    tv_sec;     /* seconds */  long      tv_nsec;    /* and nanoseconds */};/* $$.It timespec$$ *//* $$.Ib tv_sec$$ *//* $$.Ib tv_nsec$$ */#endif/* end unph */            /* prototypes for our own library functions */int      connect_nonb(int, const SA *, socklen_t, int);int      connect_timeo(int, const SA *, socklen_t, int);int  daemon_init(const char *, int);void     daemon_inetd(const char *, int);void     dg_cli(FILE *, int, const SA *, socklen_t);void     dg_echo(int, SA *, socklen_t);int      family_to_level(int);char    *gf_time(void);void     heartbeat_cli(int, int, int);void     heartbeat_serv(int, int, int);struct addrinfo *host_serv(const char *, const char *, int, int);int      inet_srcrt_add(char *);u_char  *inet_srcrt_init(int);void     inet_srcrt_print(u_char *, int);void     inet6_srcrt_print(void *);char   **my_addrs(int *);int      readable_timeo(int, int);ssize_t  readline(int, void *, size_t);ssize_t  readn(int, void *, size_t);ssize_t  read_fd(int, void *, size_t, int *);ssize_t  recvfrom_flags(int, void *, size_t, int *, SA *, socklen_t *,         struct unp_in_pktinfo *);Sigfunc *signal_intr(int, Sigfunc *);int      sock_bind_wild(int, int);int      sock_cmp_addr(const SA *, const SA *, socklen_t);int      sock_cmp_port(const SA *, const SA *, socklen_t);int      sock_get_port(const SA *, socklen_t);void     sock_set_addr(SA *, socklen_t, const void *);void     sock_set_port(SA *, socklen_t, int);void     sock_set_wild(SA *, socklen_t);char    *sock_ntop(const SA *, socklen_t);char    *sock_ntop_host(const SA *, socklen_t);int      sockfd_to_family(int);void     str_echo(int);void     str_cli(FILE *, int);int      tcp_connect(const char *, const char *);int      tcp_listen(const char *, const char *, socklen_t *);void     tv_sub(struct timeval *, struct timeval *);int      udp_client(const char *, const char *, SA **, socklen_t *);int      udp_connect(const char *, const char *);int      udp_server(const char *, const char *, socklen_t *);int      writable_timeo(int, int);ssize_t  writen(int, const void *, size_t);ssize_t  write_fd(int, void *, size_t, int);#ifdef  MCASTint      mcast_leave(int, const SA *, socklen_t);int      mcast_join(int, const SA *, socklen_t, const char *, u_int);int      mcast_leave_source_group(int sockfd, const SA *src, socklen_t srclen,                                  const SA *grp, socklen_t grplen);int      mcast_join_source_group(int sockfd, const SA *src, socklen_t srclen,                                 const SA *grp, socklen_t grplen,                                 const char *ifname, u_int ifindex);int      mcast_block_source(int sockfd, const SA *src, socklen_t srclen,                            const SA *grp, socklen_t grplen);int      mcast_unblock_source(int sockfd, const SA *src, socklen_t srclen,                              const SA *grp, socklen_t grplen);int      mcast_get_if(int);int      mcast_get_loop(int);int      mcast_get_ttl(int);int      mcast_set_if(int, const char *, u_int);int      mcast_set_loop(int, int);int      mcast_set_ttl(int, int);void     Mcast_leave(int, const SA *, socklen_t);void     Mcast_join(int, const SA *, socklen_t, const char *, u_int);void     Mcast_leave_source_group(int sockfd, const SA *src, socklen_t srclen,                                  const SA *grp, socklen_t grplen);void     Mcast_join_source_group(int sockfd, const SA *src, socklen_t srclen,                                 const SA *grp, socklen_t grplen,                                 const char *ifname, u_int ifindex);void     Mcast_block_source(int sockfd, const SA *src, socklen_t srclen,                            const SA *grp, socklen_t grplen);void     Mcast_unblock_source(int sockfd, const SA *src, socklen_t srclen,                              const SA *grp, socklen_t grplen);int      Mcast_get_if(int);int      Mcast_get_loop(int);int      Mcast_get_ttl(int);void     Mcast_set_if(int, const char *, u_int);void     Mcast_set_loop(int, int);void     Mcast_set_ttl(int, int);#endifuint16_t    in_cksum(uint16_t *, int);#ifndef HAVE_GETADDRINFO_PROTOint      getaddrinfo(const char *, const char *, const struct addrinfo *,                     struct addrinfo **);void     freeaddrinfo(struct addrinfo *);char    *gai_strerror(int);#endif#ifndef HAVE_GETNAMEINFO_PROTOint      getnameinfo(const SA *, socklen_t, char *, size_t, char *, size_t, int);#endif#ifndef HAVE_GETHOSTNAME_PROTOint      gethostname(char *, int);#endif#ifndef HAVE_HSTRERROR_PROTOconst char  *hstrerror(int);#endif#ifndef HAVE_IF_NAMETOINDEX_PROTOunsigned int     if_nametoindex(const char *);char            *if_indextoname(unsigned int, char *);void             if_freenameindex(struct if_nameindex *);struct if_nameindex *if_nameindex(void);#endif#ifndef HAVE_INET_PTON_PROTOint          inet_pton(int, const char *, void *);const char  *inet_ntop(int, const void *, char *, size_t);#endif#ifndef HAVE_INET_ATON_PROTOint      inet_aton(const char *, struct in_addr *);#endif#ifndef HAVE_PSELECT_PROTOint      pselect(int, fd_set *, fd_set *, fd_set *,                 const struct timespec *, const sigset_t *);#endif#ifndef HAVE_SOCKATMARK_PROTOint      sockatmark(int);#endif#ifndef HAVE_SNPRINTF_PROTOint      snprintf(char *, size_t, const char *, ...);#endif            /* prototypes for our own library wrapper functions */void     Connect_timeo(int, const SA *, socklen_t, int);int      Family_to_level(int);struct addrinfo *Host_serv(const char *, const char *, int, int);const char      *Inet_ntop(int, const void *, char *, size_t);void             Inet_pton(int, const char *, void *);char            *If_indextoname(unsigned int, char *);unsigned int         If_nametoindex(const char *);struct if_nameindex *If_nameindex(void);char   **My_addrs(int *);ssize_t  Read_fd(int, void *, size_t, int *);int      Readable_timeo(int, int);ssize_t  Recvfrom_flags(int, void *, size_t, int *, SA *, socklen_t *,         struct unp_in_pktinfo *);Sigfunc *Signal(int, Sigfunc *);Sigfunc *Signal_intr(int, Sigfunc *);int      Sock_bind_wild(int, int);char    *Sock_ntop(const SA *, socklen_t);char    *Sock_ntop_host(const SA *, socklen_t);int      Sockfd_to_family(int);int      Tcp_connect(const char *, const char *);int      Tcp_listen(const char *, const char *, socklen_t *);int      Udp_client(const char *, const char *, SA **, socklen_t *);int      Udp_connect(const char *, const char *);int      Udp_server(const char *, const char *, socklen_t *);ssize_t  Write_fd(int, void *, size_t, int);int      Writable_timeo(int, int);            /* prototypes for our Unix wrapper functions: see {Sec errors} */void    *Calloc(size_t, size_t);void     Close(int);void     Dup2(int, int);int      Fcntl(int, int, int);void     Gettimeofday(struct timeval *, void *);int      Ioctl(int, int, void *);pid_t    Fork(void);void    *Malloc(size_t);int  Mkstemp(char *);void    *Mmap(void *, size_t, int, int, int, off_t);int      Open(const char *, int, mode_t);void     Pipe(int *fds);ssize_t  Read(int, void *, size_t);void     Sigaddset(sigset_t *, int);void     Sigdelset(sigset_t *, int);void     Sigemptyset(sigset_t *);void     Sigfillset(sigset_t *);int      Sigismember(const sigset_t *, int);void     Sigpending(sigset_t *);void     Sigprocmask(int, const sigset_t *, sigset_t *);char    *Strdup(const char *);long     Sysconf(int);void     Sysctl(int *, u_int, void *, size_t *, void *, size_t);void     Unlink(const char *);pid_t    Wait(int *);pid_t    Waitpid(pid_t, int *, int);void     Write(int, void *, size_t);            /* prototypes for our stdio wrapper functions: see {Sec errors} */void     Fclose(FILE *);FILE    *Fdopen(int, const char *);char    *Fgets(char *, int, FILE *);FILE    *Fopen(const char *, const char *);void     Fputs(const char *, FILE *);            /* prototypes for our socket wrapper functions: see {Sec errors} */int      Accept(int, SA *, socklen_t *);void     Bind(int, const SA *, socklen_t);void     Connect(int, const SA *, socklen_t);void     Getpeername(int, SA *, socklen_t *);void     Getsockname(int, SA *, socklen_t *);void     Getsockopt(int, int, int, void *, socklen_t *);#ifdef  HAVE_INET6_RTH_INITint      Inet6_rth_space(int, int);void    *Inet6_rth_init(void *, socklen_t, int, int);void     Inet6_rth_add(void *, const struct in6_addr *);void     Inet6_rth_reverse(const void *, void *);int      Inet6_rth_segments(const void *);struct in6_addr *Inet6_rth_getaddr(const void *, int);#endif#ifdef  HAVE_KQUEUEint      Kqueue(void);int      Kevent(int, const struct kevent *, int,                struct kevent *, int, const struct timespec *);#endifvoid     Listen(int, int);#ifdef  HAVE_POLLint      Poll(struct pollfd *, unsigned long, int);#endifssize_t  Readline(int, void *, size_t);ssize_t  Readn(int, void *, size_t);ssize_t  Recv(int, void *, size_t, int);ssize_t  Recvfrom(int, void *, size_t, int, SA *, socklen_t *);ssize_t  Recvmsg(int, struct msghdr *, int);int      Select(int, fd_set *, fd_set *, fd_set *, struct timeval *);void     Send(int, const void *, size_t, int);void     Sendto(int, const void *, size_t, int, const SA *, socklen_t);void     Sendmsg(int, const struct msghdr *, int);void     Setsockopt(int, int, int, const void *, socklen_t);void     Shutdown(int, int);int      Sockatmark(int);int      Socket(int, int, int);void     Socketpair(int, int, int, int *);void     Writen(int, void *, size_t);void     err_dump(const char *, ...);void     err_msg(const char *, ...);void     err_quit(const char *, ...);void     err_ret(const char *, ...);void     err_sys(const char *, ...);#endif  /* __unp_h */

config.h:

/* config.h.  Generated by configure.  *//* config.h.in.  Generated from configure.in by autoheader.  *//* CPU, vendor, and operating system */#define CPU_VENDOR_OS "x86_64-unknown-linux-gnu"/* Define to 1 if <netdb.h> defines struct addrinfo */#define HAVE_ADDRINFO_STRUCT 1/* Define to 1 if you have the <arpa/inet.h> header file. */#define HAVE_ARPA_INET_H 1/* Define to 1 if you have the `bzero' function. */#define HAVE_BZERO 1/* Define to 1 if the /dev/streams/xtiso/tcp device exists *//* #undef HAVE_DEV_STREAMS_XTISO_TCP *//* Define to 1 if the /dev/tcp device exists *//* #undef HAVE_DEV_TCP *//* Define to 1 if the /dev/xti/tcp device exists *//* #undef HAVE_DEV_XTI_TCP *//* Define to 1 if you have the <errno.h> header file. */#define HAVE_ERRNO_H 1/* Define to 1 if you have the <fcntl.h> header file. */#define HAVE_FCNTL_H 1/* Define to 1 if you have the `getaddrinfo' function. */#define HAVE_GETADDRINFO 1/* define if getaddrinfo prototype is in <netdb.h> */#define HAVE_GETADDRINFO_PROTO 1/* Define to 1 if you have the `gethostbyname2' function. */#define HAVE_GETHOSTBYNAME2 1/* Define to 1 if you have the `gethostbyname_r' function. */#define HAVE_GETHOSTBYNAME_R 1/* Define to 1 if you have the `gethostname' function. */#define HAVE_GETHOSTNAME 1/* define if gethostname prototype is in <unistd.h> */#define HAVE_GETHOSTNAME_PROTO 1/* Define to 1 if you have the `getnameinfo' function. */#define HAVE_GETNAMEINFO 1/* define if getnameinfo prototype is in <netdb.h> */#define HAVE_GETNAMEINFO_PROTO 1/* define if getrusage prototype is in <sys/resource.h> */#define HAVE_GETRUSAGE_PROTO 1/* Define to 1 if you have the `hstrerror' function. */#define HAVE_HSTRERROR 1/* define if hstrerror prototype is in <netdb.h> */#define HAVE_HSTRERROR_PROTO 1/* Define to 1 if <net/if.h> defines struct if_nameindex */#define HAVE_IF_NAMEINDEX_STRUCT 1/* Define to 1 if you have the `if_nametoindex' function. */#define HAVE_IF_NAMETOINDEX 1/* define if if_nametoindex prototype is in <net/if.h> */#define HAVE_IF_NAMETOINDEX_PROTO 1/* Define to 1 if you have the `inet6_rth_init' function. */#define HAVE_INET6_RTH_INIT 1/* Define to 1 if you have the `inet_aton' function. */#define HAVE_INET_ATON 1/* define if inet_aton prototype is in <arpa/inet.h> */#define HAVE_INET_ATON_PROTO 1/* Define to 1 if you have the `inet_pton' function. */#define HAVE_INET_PTON 1/* define if inet_pton prototype is in <arpa/inet.h> */#define HAVE_INET_PTON_PROTO 1/* Define to 1 if you have the `kevent' function. *//* #undef HAVE_KEVENT *//* Define to 1 if you have the `kqueue' function. *//* #undef HAVE_KQUEUE *//* Define to 1 if you have the `nsl' library (-lnsl). *//* #undef HAVE_LIBNSL *//* Define to 1 if you have the `pthread' library (-lpthread). */#define HAVE_LIBPTHREAD 1/* Define to 1 if you have the `pthreads' library (-lpthreads). *//* #undef HAVE_LIBPTHREADS *//* Define to 1 if you have the `resolv' library (-lresolv). *//* #undef HAVE_LIBRESOLV *//* Define to 1 if you have the `xti' library (-lxti). *//* #undef HAVE_LIBXTI *//* Define to 1 if you have the `mkstemp' function. */#define HAVE_MKSTEMP 1/* define if struct msghdr contains the msg_control member */#define HAVE_MSGHDR_MSG_CONTROL 1/* Define to 1 if you have the <netconfig.h> header file. *//* #undef HAVE_NETCONFIG_H *//* Define to 1 if you have the <netdb.h> header file. */#define HAVE_NETDB_H 1/* Define to 1 if you have the <netdir.h> header file. *//* #undef HAVE_NETDIR_H *//* Define to 1 if you have the <netinet/in.h> header file. */#define HAVE_NETINET_IN_H 1/* Define to 1 if you have the <net/if_dl.h> header file. *//* #undef HAVE_NET_IF_DL_H *//* Define to 1 if you have the `poll' function. */#define HAVE_POLL 1/* Define to 1 if you have the <poll.h> header file. */#define HAVE_POLL_H 1/* Define to 1 if you have the `pselect' function. */#define HAVE_PSELECT 1/* define if pselect prototype is in <sys/stat.h> */#define HAVE_PSELECT_PROTO 1/* Define to 1 if you have the <pthread.h> header file. */#define HAVE_PTHREAD_H 1/* Define to 1 if you have the <signal.h> header file. */#define HAVE_SIGNAL_H 1/* Define to 1 if you have the `snprintf' function. */#define HAVE_SNPRINTF 1/* define if snprintf prototype is in <stdio.h> */#define HAVE_SNPRINTF_PROTO 1/* Define to 1 if <net/if_dl.h> defines struct sockaddr_dl *//* #undef HAVE_SOCKADDR_DL_STRUCT *//* define if socket address structures have length fields *//* #undef HAVE_SOCKADDR_SA_LEN *//* Define to 1 if you have the `sockatmark' function. */#define HAVE_SOCKATMARK 1/* define if sockatmark prototype is in <sys/socket.h> */#define HAVE_SOCKATMARK_PROTO 1/* Define to 1 if you have the <stdio.h> header file. */#define HAVE_STDIO_H 1/* Define to 1 if you have the <stdlib.h> header file. */#define HAVE_STDLIB_H 1/* Define to 1 if you have the <strings.h> header file. */#define HAVE_STRINGS_H 1/* Define to 1 if you have the <string.h> header file. */#define HAVE_STRING_H 1/* Define to 1 if you have the <stropts.h> header file. */#define HAVE_STROPTS_H 1/* Define to 1 if `ifr_mtu' is member of `struct ifreq'. */#define HAVE_STRUCT_IFREQ_IFR_MTU 1/* Define to 1 if the system has the type `struct sockaddr_storage'. */#define HAVE_STRUCT_SOCKADDR_STORAGE 1/* Define to 1 if you have the <sys/event.h> header file. *//* #undef HAVE_SYS_EVENT_H *//* Define to 1 if you have the <sys/filio.h> header file. *//* #undef HAVE_SYS_FILIO_H *//* Define to 1 if you have the <sys/ioctl.h> header file. */#define HAVE_SYS_IOCTL_H 1/* Define to 1 if you have the <sys/param.h> header file. */#define HAVE_SYS_PARAM_H 1/* Define to 1 if you have the <sys/select.h> header file. */#define HAVE_SYS_SELECT_H 1/* Define to 1 if you have the <sys/socket.h> header file. */#define HAVE_SYS_SOCKET_H 1/* Define to 1 if you have the <sys/sockio.h> header file. *//* #undef HAVE_SYS_SOCKIO_H *//* Define to 1 if you have the <sys/stat.h> header file. */#define HAVE_SYS_STAT_H 1/* Define to 1 if you have the <sys/sysctl.h> header file. */#define HAVE_SYS_SYSCTL_H 1/* Define to 1 if you have the <sys/time.h> header file. */#define HAVE_SYS_TIME_H 1/* Define to 1 if you have the <sys/types.h> header file. */#define HAVE_SYS_TYPES_H 1/* Define to 1 if you have the <sys/uio.h> header file. */#define HAVE_SYS_UIO_H 1/* Define to 1 if you have the <sys/un.h> header file. */#define HAVE_SYS_UN_H 1/* Define to 1 if you have the <sys/wait.h> header file. */#define HAVE_SYS_WAIT_H 1/* Define to 1 if <time.h> or <sys/time.h> defines struct timespec */#define HAVE_TIMESPEC_STRUCT 1/* Define to 1 if you have the <time.h> header file. */#define HAVE_TIME_H 1/* Define to 1 if you have the <unistd.h> header file. */#define HAVE_UNISTD_H 1/* Define to 1 if you have the `vsnprintf' function. */#define HAVE_VSNPRINTF 1/* Define to 1 if you have the <xti.h> header file. *//* #undef HAVE_XTI_H *//* Define to 1 if you have the <xti_inet.h> header file. *//* #undef HAVE_XTI_INET_H *//* Define to 1 if the system supports IPv4 */#define IPV4 1/* Define to 1 if the system supports IPv6 */#define IPV6 1/* Define to 1 if the system supports IPv4 */#define IPv4 1/* Define to 1 if the system supports IPv6 */#define IPv6 1/* Define to 1 if the system supports IP Multicast */#define MCAST 1/* Define to the address where bug reports for this package should be sent. */#define PACKAGE_BUGREPORT ""/* Define to the full name of this package. */#define PACKAGE_NAME ""/* Define to the full name and version of this package. */#define PACKAGE_STRING ""/* Define to the one symbol short name of this package. */#define PACKAGE_TARNAME ""/* Define to the version of this package. */#define PACKAGE_VERSION ""/* the size of the sa_family field in a socket address structure *//* #undef SA_FAMILY_T *//* Define to 1 if you have the ANSI C header files. */#define STDC_HEADERS 1/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */#define TIME_WITH_SYS_TIME 1/* Define to 1 if the system supports UNIX domain sockets */#define UNIXDOMAIN 1/* Define to 1 if the system supports UNIX domain sockets */#define UNIXdomain 1/* 16 bit signed type *//* #undef int16_t *//* 32 bit signed type *//* #undef int32_t *//* the type of the sa_family struct member *//* #undef sa_family_t *//* unsigned integer type of the result of the sizeof operator *//* #undef size_t *//* a type appropriate for address *//* #undef socklen_t *//* define to __ss_family if sockaddr_storage has that instead of ss_family *//* #undef ss_family *//* a signed type appropriate for a count of bytes or an error indication *//* #undef ssize_t *//* scalar type *//* #undef t_scalar_t *//* unsigned scalar type *//* #undef t_uscalar_t *//* 16 bit unsigned type *//* #undef uint16_t *//* 32 bit unsigned type *//* #undef uint32_t *//* 8-bit unsigned type *//* #undef uint8_t */
原创粉丝点击