⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compat.h

📁 基于ntp协议的网络时间服务程序
💻 H
字号:
/*  -*- Mode: C -*-  *//* --- fake the preprocessor into handlng portability *//* *  Time-stamp:      "2007-02-03 17:41:06 bkorb" * * Author:           Gary V Vaughan <gvaughan@oranda.demon.co.uk> * Created:          Mon Jun 30 15:54:46 1997 * * $Id: compat.h,v 4.16 2007/04/27 01:10:47 bkorb Exp $ */#ifndef COMPAT_H_GUARD#define COMPAT_H_GUARD 1#if defined(HAVE_CONFIG_H)#  include <config.h>#elif defined(_WIN32) && !defined(__CYGWIN__)#  include "windows-config.h"#else#  error "compat.h" requires "config.h"   choke me.#endif#ifndef HAVE_STRSIGNAL   char * strsignal( int signo );#endif#define  _GNU_SOURCE    1 /* for strsignal in GNU's libc */#define  __USE_GNU      1 /* exact same thing as above   */#define  __EXTENSIONS__ 1 /* and another way to call for it *//* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  SYSTEM HEADERS: */#include <sys/types.h>#ifdef HAVE_SYS_MMAN_H#  include <sys/mman.h>#endif#include <sys/param.h>#if HAVE_SYS_PROCSET_H#  include <sys/procset.h>#endif#include <sys/stat.h>#include <sys/wait.h>#if defined( HAVE_SOLARIS_SYSINFO )#  include <sys/systeminfo.h>#elif defined( HAVE_UNAME_SYSCALL )#  include <sys/utsname.h>#endif#ifdef DAEMON_ENABLED#  if HAVE_SYS_STROPTS_H#  include <sys/stropts.h>#  endif#  if HAVE_SYS_SOCKET_H#  include <sys/socket.h>#  endif#  if ! defined(HAVE_SYS_POLL_H) && ! defined(HAVE_SYS_SELECT_H)#    error This system cannot support daemon processing     Choke Me.#  endif#  if HAVE_SYS_POLL_H#  include <sys/poll.h>#  endif#  if HAVE_SYS_SELECT_H#  include <sys/select.h>#  endif#  if HAVE_NETINET_IN_H#  include <netinet/in.h>#  endif#  if HAVE_SYS_UN_H#  include <sys/un.h>#  endif#endif/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  USER HEADERS: */#include <stdio.h>#include <assert.h>#include <ctype.h>/* *  Directory opening stuff: */# if defined (_POSIX_SOURCE)/* Posix does not require that the d_ino field be present, and some   systems do not provide it. */#    define REAL_DIR_ENTRY(dp) 1# else /* !_POSIX_SOURCE */#    define REAL_DIR_ENTRY(dp) (dp->d_ino != 0)# endif /* !_POSIX_SOURCE */# if defined (HAVE_DIRENT_H)#   include <dirent.h>#   define D_NAMLEN(dirent) strlen((dirent)->d_name)# else /* !HAVE_DIRENT_H */#   define dirent direct#   define D_NAMLEN(dirent) (dirent)->d_namlen#   if defined (HAVE_SYS_NDIR_H)#     include <sys/ndir.h>#   endif /* HAVE_SYS_NDIR_H */#   if defined (HAVE_SYS_DIR_H)#     include <sys/dir.h>#   endif /* HAVE_SYS_DIR_H */#   if defined (HAVE_NDIR_H)#     include <ndir.h>#   endif /* HAVE_NDIR_H */# endif /* !HAVE_DIRENT_H */#include <errno.h>#ifdef HAVE_FCNTL_H# include <fcntl.h>#endif#ifndef O_NONBLOCK# define O_NONBLOCK FNDELAY#endif#if defined(HAVE_LIBGEN) && defined(HAVE_LIBGEN_H)#  include <libgen.h>#endif#if defined(HAVE_LIMITS_H)  /* this is also in options.h */#  include <limits.h>#elif defined(HAVE_SYS_LIMITS_H)#  include <sys/limits.h>#endif /* HAVE_LIMITS/SYS_LIMITS_H */#include <memory.h>#include <setjmp.h>#include <signal.h>#if defined( HAVE_STDINT_H )#  include <stdint.h>#elif defined( HAVE_INTTYPES_H )#  include <inttypes.h>#endif#include <stdlib.h>#include <string.h>#include <time.h>#ifdef HAVE_UTIME_H#  include <utime.h>#endif#ifdef HAVE_UNISTD_H#  include <unistd.h>#endif/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  FIXUPS and CONVIENCE STUFF: */#ifdef __cplusplus#   define EXTERN extern "C"#else#   define EXTERN extern#endif/* some systems #def errno! and others do not declare it!! */#ifndef errno   extern int errno;#endif/* Some machines forget this! */# ifndef EXIT_FAILURE#   define EXIT_SUCCESS 0#   define EXIT_FAILURE 1# endif#ifndef NUL#  define NUL '\0'#endif#ifndef NULL#  define NULL 0#endif#if !defined (MAXPATHLEN) && defined (HAVE_SYS_PARAM_H)#  include <sys/param.h>#endif /* !MAXPATHLEN && HAVE_SYS_PARAM_H */#if !defined (MAXPATHLEN) && defined (PATH_MAX)#  define MAXPATHLEN PATH_MAX#endif /* !MAXPATHLEN && PATH_MAX */#if !defined (MAXPATHLEN) && defined(_MAX_PATH)#  define PATH_MAX _MAX_PATH#  define MAXPATHLEN _MAX_PATH#endif#if !defined (MAXPATHLEN)#  define MAXPATHLEN ((size_t)4096)#endif /* MAXPATHLEN */#define AG_PATH_MAX  ((size_t)MAXPATHLEN)#ifndef LONG_MAX#  define LONG_MAX      ~(1L << (8*sizeof(long) -1))#  define INT_MAX       ~(1 << (8*sizeof(int) -1))#endif#ifndef ULONG_MAX#  define ULONG_MAX     ~(OUL)#  define UINT_MAX      ~(OU)#endif#ifndef SHORT_MAX#  define SHORT_MAX     ~(1 << (8*sizeof(short) -1))#else#  define USHORT_MAX    ~(OUS)#endif#ifndef HAVE_INT8_T  typedef signed char       int8_t;#endif#ifndef HAVE_UINT8_T  typedef unsigned char     uint8_t;#endif#ifndef HAVE_INT16_T  typedef signed short      int16_t;#endif#ifndef HAVE_UINT16_T  typedef unsigned short    uint16_t;#endif#ifndef HAVE_UINT_T  typedef unsigned int      uint_t;#endif#ifndef HAVE_INT32_T# if SIZEOF_INT == 4        typedef signed int      int32_t;# elif SIZEOF_LONG == 4        typedef signed long     int32_t;# endif#endif#ifndef HAVE_UINT32_T# if SIZEOF_INT == 4        typedef unsigned int    uint32_t;# elif SIZEOF_LONG == 4        typedef unsigned long   uint32_t;# else#   error Cannot create a uint32_t type.    Choke Me.# endif#endif#ifndef HAVE_INTPTR_T  typedef signed long   intptr_t;#endif#ifndef HAVE_UINTPTR_T  typedef unsigned long uintptr_t;#endif/* redefine these for BSD style string libraries */#ifndef HAVE_STRCHR#  define strchr        index#  define strrchr       rindex#endif#ifdef USE_FOPEN_BINARY#  ifndef FOPEN_BINARY_FLAG#    define FOPEN_BINARY_FLAG   "b"#  endif#  ifndef FOPEN_TEXT_FLAG#    define FOPEN_TEXT_FLAG     "t"#  endif#else#  ifndef FOPEN_BINARY_FLAG#    define FOPEN_BINARY_FLAG#  endif#  ifndef FOPEN_TEXT_FLAG#    define FOPEN_TEXT_FLAG#  endif#endif#ifndef STR#  define _STR(s) #s#  define STR(s)  _STR(s)#endif/* ##### Pointer sized word ##### *//* FIXME:  the MAX stuff in here is broken! */#if SIZEOF_CHARP > SIZEOF_INT   typedef long t_word;   #define WORD_MAX  LONG_MAX   #define WORD_MIN  LONG_MIN#else /* SIZEOF_CHARP <= SIZEOF_INT */   typedef int t_word;   #define WORD_MAX  INT_MAX   #define WORD_MIN  INT_MIN#endif#endif /* COMPAT_H_GUARD *//* * Local Variables: * mode: C * c-file-style: "stroustrup" * indent-tabs-mode: nil * End: * end of compat/compat.h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -