📄 config.h
字号:
* See HAS_SIGSETJMP. *//* Siglongjmp: * This macro is used in the same way as siglongjmp(), but will invoke * traditional longjmp() if siglongjmp isn't available. * See HAS_SIGSETJMP. *//*#define HAS_SIGSETJMP /**/#ifdef HAS_SIGSETJMP#define Sigjmp_buf sigjmp_buf#define Sigsetjmp(buf,save_mask) sigsetjmp((buf),(save_mask))#define Siglongjmp(buf,retval) siglongjmp((buf),(retval))#else#define Sigjmp_buf jmp_buf#define Sigsetjmp(buf,save_mask) setjmp((buf))#define Siglongjmp(buf,retval) longjmp((buf),(retval))#endif/* USE_STDIO_PTR: * This symbol is defined if the _ptr and _cnt fields (or similar) * of the stdio FILE structure can be used to access the stdio buffer * for a file handle. If this is defined, then the FILE_ptr(fp) * and FILE_cnt(fp) macros will also be defined and should be used * to access these fields. *//* FILE_ptr: * This macro is used to access the _ptr field (or equivalent) of the * FILE structure pointed to by its argument. This macro will always be * defined if USE_STDIO_PTR is defined. *//* STDIO_PTR_LVALUE: * This symbol is defined if the FILE_ptr macro can be used as an * lvalue. *//* FILE_cnt: * This macro is used to access the _cnt field (or equivalent) of the * FILE structure pointed to by its argument. This macro will always be * defined if USE_STDIO_PTR is defined. *//* STDIO_CNT_LVALUE: * This symbol is defined if the FILE_cnt macro can be used as an * lvalue. */#define USE_STDIO_PTR /**/#ifdef USE_STDIO_PTR#define FILE_ptr(fp) ((fp)->_ptr)#define STDIO_PTR_LVALUE /**/#define FILE_cnt(fp) ((fp)->_cnt)#define STDIO_CNT_LVALUE /**/#endif/* USE_STDIO_BASE: * This symbol is defined if the _base field (or similar) of the * stdio FILE structure can be used to access the stdio buffer for * a file handle. If this is defined, then the FILE_base(fp) macro * will also be defined and should be used to access this field. * Also, the FILE_bufsiz(fp) macro will be defined and should be used * to determine the number of bytes in the buffer. USE_STDIO_BASE * will never be defined unless USE_STDIO_PTR is. *//* FILE_base: * This macro is used to access the _base field (or equivalent) of the * FILE structure pointed to by its argument. This macro will always be * defined if USE_STDIO_BASE is defined. *//* FILE_bufsiz: * This macro is used to determine the number of bytes in the I/O * buffer pointed to by _base field (or equivalent) of the FILE * structure pointed to its argument. This macro will always be defined * if USE_STDIO_BASE is defined. */#define USE_STDIO_BASE /**/#ifdef USE_STDIO_BASE#define FILE_base(fp) ((fp)->_base)#define FILE_bufsiz(fp) ((fp)->_cnt + (fp)->_ptr - (fp)->_base)#endif/* HAS_VPRINTF: * This symbol, if defined, indicates that the vprintf routine is available * to printf with a pointer to an argument list. If unavailable, you * may need to write your own, probably in terms of _doprnt(). *//* USE_CHAR_VSPRINTF: * This symbol is defined if this system has vsprintf() returning type * (char*). The trend seems to be to declare it as "int vsprintf()". It * is up to the package author to declare vsprintf correctly based on the * symbol. */#define HAS_VPRINTF /**//*#define USE_CHAR_VSPRINTF /**//* DOUBLESIZE: * This symbol contains the size of a double, so that the C preprocessor * can make decisions based on it. */#define DOUBLESIZE 8 /**//* I_TIME: * This symbol, if defined, indicates to the C program that it should * include <time.h>. *//* I_SYS_TIME: * This symbol, if defined, indicates to the C program that it should * include <sys/time.h>. *//* I_SYS_TIME_KERNEL: * This symbol, if defined, indicates to the C program that it should * include <sys/time.h> with KERNEL defined. */#define I_TIME /**//*#define I_SYS_TIME /**//*#define I_SYS_TIME_KERNEL /**//* INTSIZE: * This symbol contains the value of sizeof(int) so that the C * preprocessor can make decisions based on it. *//* LONGSIZE: * This symbol contains the value of sizeof(long) so that the C * preprocessor can make decisions based on it. *//* SHORTSIZE: * This symbol contains the value of sizeof(short) so that the C * preprocessor can make decisions based on it. */#define INTSIZE 4 /**/#define LONGSIZE 4 /**/#define SHORTSIZE 2 /**//* VAL_O_NONBLOCK: * This symbol is to be used during open() or fcntl(F_SETFL) to turn on * non-blocking I/O for the file descriptor. Note that there is no way * back, i.e. you cannot turn it blocking again this way. If you wish to * alternatively switch between blocking and non-blocking, use the * ioctl(FIOSNBIO) call instead, but that is not supported by all devices. *//* VAL_EAGAIN: * This symbol holds the errno error code set by read() when no data was * present on the non-blocking file descriptor. *//* RD_NODATA: * This symbol holds the return code from read() when no data is present * on the non-blocking file descriptor. Be careful! If EOF_NONBLOCK is * not defined, then you can't distinguish between no data and EOF by * issuing a read(). You'll have to find another way to tell for sure! *//* EOF_NONBLOCK: * This symbol, if defined, indicates to the C program that a read() on * a non-blocking file descriptor will return 0 on EOF, and not the value * held in RD_NODATA (-1 usually, in that case!). */#define VAL_O_NONBLOCK O_NONBLOCK#define VAL_EAGAIN EAGAIN#define RD_NODATA -1#define EOF_NONBLOCK/* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor * can make decisions based on it. It will be sizeof(void *) if * the compiler supports (void *); otherwise it will be * sizeof(char *). */#define PTRSIZE 4 /**//* RANDBITS: * This symbol contains the number of bits of random number the rand() * function produces. Usual values are 15, 16, and 31. */#define RANDBITS 15 /**//* SSize_t: * This symbol holds the type used by functions that return * a count of bytes or an error condition. It must be a signed type. * It is usually ssize_t, but may be long or int, etc. * It may be necessary to include <sys/types.h> or <unistd.h> * to get any typedef'ed information. * We will pick a type such that sizeof(SSize_t) == sizeof(Size_t). */#define SSize_t int /* signed count of bytes *//* OSNAME: * This symbol contains the name of the operating system, as determined * by Configure. You shouldn't rely on it too much; the specific * feature tests from Configure are generally more reliable. */#define OSNAME "MSWin32" /**//* CAT2: * This macro catenates 2 tokens together. *//* STRINGIFY: * This macro surrounds its token with double quotes. */#if 42 == 1#define CAT2(a,b)a/**/b#define STRINGIFY(a)"a" /* If you can get stringification with catify, tell me how! */#endif#if 42 == 42#define CAT2(a,b)a ## b#define StGiFy(a)# a#define STRINGIFY(a)StGiFy(a)#endif#if 42 != 1 && 42 != 42#include "Bletch: How does this C preprocessor catenate tokens?"#endif/* CSH: * This symbol, if defined, contains the full pathname of csh. *//*#define HAS_CSH /**/#ifdef HAS_CSH#define CSH "" /**/#endif/* HAS_ENDHOSTENT: * This symbol, if defined, indicates that the endhostent() routine is * available to close whatever was being used for host queries. *//*#define HAS_ENDHOSTENT /**//* HAS_ENDNETENT: * This symbol, if defined, indicates that the endnetent() routine is * available to close whatever was being used for network queries. *//*#define HAS_ENDNETENT /**//* HAS_ENDPROTOENT: * This symbol, if defined, indicates that the endprotoent() routine is * available to close whatever was being used for protocol queries. *//*#define HAS_ENDPROTOENT /**//* HAS_ENDSERVENT: * This symbol, if defined, indicates that the endservent() routine is * available to close whatever was being used for service queries. *//*#define HAS_ENDSERVENT /**//* HAS_GETHOSTBYADDR: * This symbol, if defined, indicates that the gethostbyaddr() routine is * available to look up hosts by their IP addresses. */#define HAS_GETHOSTBYADDR /**//* HAS_GETHOSTBYNAME: * This symbol, if defined, indicates that the gethostbyname() routine is * available to look up host names in some data base or other. */#define HAS_GETHOSTBYNAME /**//* HAS_GETHOSTENT: * This symbol, if defined, indicates that the gethostent() routine is * available to look up host names in some data base or another. *//*#define HAS_GETHOSTENT /**//* HAS_GETNETBYADDR: * This symbol, if defined, indicates that the getnetbyaddr() routine is * available to look up networks by their IP addresses. *//*#define HAS_GETNETBYADDR /**//* HAS_GETNETBYNAME: * This symbol, if defined, indicates that the getnetbyname() routine is * available to look up networks by their names. *//*#define HAS_GETNETBYNAME /**//* HAS_GETNETENT: * This symbol, if defined, indicates that the getnetent() routine is * available to look up network names in some data base or another. *//*#define HAS_GETNETENT /**//* HAS_GETPROTOENT: * This symbol, if defined, indicates that the getprotoent() routine is * available to look up protocols in some data base or another. *//*#define HAS_GETPROTOENT /**//* HAS_GETPROTOBYNAME: * This symbol, if defined, indicates that the getprotobyname() * routine is available to look up protocols by their name. *//* HAS_GETPROTOBYNUMBER: * This symbol, if defined, indicates that the getprotobynumber() * routine is available to look up protocols by their number. */#define HAS_GETPROTOBYNAME /**/#define HAS_GETPROTOBYNUMBER /**//* HAS_GETSERVENT: * This symbol, if defined, indicates that the getservent() routine is * available to look up network services in some data base or another. *//*#define HAS_GETSERVENT /**//* HAS_GETSERVBYNAME: * This symbol, if defined, indicates that the getservbyname() * routine is available to look up services by their name. *//* HAS_GETSERVBYPORT: * This symbol, if defined, indicates that the getservbyport() * routine is available to look up services by their port. */#define HAS_GETSERVBYNAME /**/#define HAS_GETSERVBYPORT /**//* HAS_LONG_DOUBLE: * This symbol will be defined if the C compiler supports long * doubles. *//* LONG_DOUBLESIZE: * This symbol contains the size of a long double, so that the * C preprocessor can make decisions based on it. It is only * defined if the system supports long doubles. */#define HAS_LONG_DOUBLE /**/#ifdef HAS_LONG_DOUBLE#define LONG_DOUBLESIZE 10 /**/#endif/* HAS_LONG_LONG: * This symbol will be defined if the C compiler supports * long long. *//* LONGLONGSIZE: * This symbol contains the size of a long long, so that the * C preprocessor can make decisions based on it. It is only * defined if the system supports long long. *//*#define HAS_LONG_LONG /**/#ifdef HAS_LONG_LONG#define LONGLONGSIZE 8 /**/#endif/* HAS_SETGROUPS: * This symbol, if defined, indicates that the setgroups() routine is * available to set the list of process groups. If unavailable, multiple * groups are probably not supported. *//*#define HAS_SETGROUPS /**//* HAS_SETHOSTENT: * This symbol, if defined, indicates that the sethostent() routine is * available. *//*#define HAS_SETHOSTENT /**//* HAS_SETNETENT: * This symbol, if defined, indicates that the setnetent() routine is * available. *//*#define HAS_SETNETENT /**//* HAS_SETPROTOENT: * This symbol, if defined, indicates that the setprotoent() routine is * available. *//*#define HAS_SETPROTOENT /**//* HAS_SETSERVENT: * This symbol, if defined, indicates that the setservent() routine is * available. *//*#define HAS_SETSERVENT /**//* HAS_SETVBUF: * This symbol, if defined, indicates that the setvbuf routine is * available to change buffering on an open stdio stream. * to a line-buffered mode. */#define HAS_SETVBUF /**//* HAS_SOCKET: * This symbol, if defined, indicates that the BSD socket interface is * supported. *//* HAS_SOCKETPAIR: * This symbol, if defined, indicates that the BSD socketpair() call is * supported. */#define HAS_SOCKET /**//*#define HAS_SOCKETPAIR /**//* HAS_UNION_SEMUN: * This symbol, if defined, indicates that the union semun is * defined by including <sys/sem.h>. If not, the user code * probably needs to define it as: * union semun { * int val; * struct semid_ds *buf; * unsigned short *array; * } *//* USE_SEMCTL_SEMUN: * This symbol, if defined, indicates that union semun is * used for semctl IPC_STAT. *//* USE_SEMCTL_SEMID_DS: * This symbol, if defined, indicates that struct semid_ds * is * used for semctl IPC_STAT. */#define HAS_UNION_SEMUN /**//*#define USE_SEMCTL_SEMUN /**//*#define USE_SEMCTL_SEMID_DS /**//* Signal_t: * This symbol's value is either "void" or "int", corresponding to the * appropriate return type of a signal handler. Thus, you can declare * a signal handler using "Signal_t (*handler)()", and define the * handler using "Signal_t handler(sig)". */#define Signal_t void /* Signal handler's return type *//* Groups_t: * This symbol holds the type used for the second argument to * getgroups() and setgropus(). Usually, this is the same as
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -