📄 config.h
字号:
#ifndef config_h#define config_h/* config.h * * This file is hand tailored for MS-DOS and MSC 5.1 and 6.00A. * Tom Dinger, March 1991. *//* * BUGGY_MSC5: * This symbol is defined if you are the unfortunate owner of the buggy * Microsoft C compiler version 5.1. It is used as a conditional to * guard code sections that are known to break this compiler. * BUGGY_MSC6: * This symbol is defined if you are the unfortunate owner of the buggy * Microsoft C compiler version 6.0A. It is used as a conditional to * guard code sections that are known to break this compiler. */#define BUGGY_MSC5 /**//*#undef BUGGY_MSC6 /**//* EUNICE * This symbol, if defined, indicates that the program is being compiled * under the EUNICE package under VMS. The program will need to handle * things like files that don't go away the first time you unlink them, * due to version numbering. It will also need to compensate for lack * of a respectable link() command. *//* VMS * This symbol, if defined, indicates that the program is running under * VMS. It is currently only set in conjunction with the EUNICE symbol. *//*#undef EUNICE /**//*#undef VMS /**//* ALIGNBYTES * This symbol contains the number of bytes required to align a double. * Usual values are 2, 4, and 8. */#define ALIGNBYTES 4 /**//* BIN * This symbol holds the name of the directory in which the user wants * to keep publicly executable images for the package in question. It * is most often a local directory such as /usr/local/bin. */#define BIN "/usr/local/bin" /**//* BYTEORDER * This symbol contains an encoding of the order of bytes in a long. * Usual values (in octal) are 01234, 04321, 02143, 03412... */#define BYTEORDER 0x1234 /**//* CPPSTDIN * This symbol contains the first part of the string which will invoke * the C preprocessor on the standard input and produce to standard * output. Typical value of "cc -E" or "/lib/cpp". *//* CPPMINUS * This symbol contains the second part of the string which will invoke * the C preprocessor on the standard input and produce to standard * output. This symbol will have the value "-" if CPPSTDIN needs a minus * to specify standard input, otherwise the value is "". *//* TODO: doesn't work for MSC -- it's more complicated than this */#define CPPSTDIN "cl "#define CPPMINUS ""/* HAS_BCMP * This symbol, if defined, indicates that the bcmp routine is available * to compare blocks of memory. If undefined, use memcmp. If that's * not available, roll your own. *//*#undef HAS_BCMP /**//* HAS_BCOPY * This symbol, if defined, indicates that the bcopy routine is available * to copy blocks of memory. Otherwise you should probably use memcpy(). * If neither is defined, roll your own. *//* SAFE_BCOPY * This symbol, if defined, indicates that the bcopy routine is available * to copy potentially overlapping copy blocks of bcopy. Otherwise you * should probably use memmove() or memcpy(). If neither is defined, * roll your own. *//*#undef HAS_BCOPY /**//*#undef SAFE_BCOPY /**//* HAS_BZERO * This symbol, if defined, indicates that the bzero routine is available * to zero blocks of memory. Otherwise you should probably use memset() * or roll your own. *//*#undef HAS_BZERO /**//* CASTNEGFLOAT * This symbol, if defined, indicates that this C compiler knows how to * cast negative or large floating point numbers to unsigned longs, ints * and shorts. *//* CASTFLAGS * This symbol contains flags that say what difficulties the compiler * has casting odd floating values to unsigned long: * 1 = couldn't cast < 0 * 2 = couldn't cast >= 0x80000000 */#define CASTNEGFLOAT /**/#define CASTFLAGS 0 /**//* CHARSPRINTF * This symbol is defined if this system declares "char *sprintf()" in * stdio.h. The trend seems to be to declare it as "int sprintf()". It * is up to the package author to declare sprintf correctly based on the * symbol. *//*#undef CHARSPRINTF /**//* HAS_CHSIZE * This symbol, if defined, indicates that the chsize routine is available * to truncate files. You might need a -lx to get this routine. */#define HAS_CHSIZE /**//* HAS_CRYPT * This symbol, if defined, indicates that the crypt routine is available * to encrypt passwords and the like. *//*#undef HAS_CRYPT /**//* CSH * This symbol, if defined, indicates that the C-shell exists. * If defined, contains the full pathname of csh. *//*#undef CSH "/usr/bin/csh" /**//* DOSUID * This symbol, if defined, indicates that the C program should * check the script that it is executing for setuid/setgid bits, and * attempt to emulate setuid/setgid on systems that have disabled * setuid #! scripts because the kernel can't do it securely. * It is up to the package designer to make sure that this emulation * is done securely. Among other things, it should do an fstat on * the script it just opened to make sure it really is a setuid/setgid * script, it should make sure the arguments passed correspond exactly * to the argument on the #! line, and it should not trust any * subprocesses to which it must pass the filename rather than the * file descriptor of the script to be executed. *//*#undef DOSUID /**//* HAS_DUP2 * This symbol, if defined, indicates that the dup2 routine is available * to dup file descriptors. Otherwise you should use dup(). */#define HAS_DUP2 /**//* HAS_FCHMOD * This symbol, if defined, indicates that the fchmod routine is available * to change mode of opened files. If unavailable, use chmod(). *//*#undef HAS_FCHMOD /**//* HAS_FCHOWN * This symbol, if defined, indicates that the fchown routine is available * to change ownership of opened files. If unavailable, use chown(). *//*#undef HAS_FCHOWN /**//* HAS_FCNTL * This symbol, if defined, indicates to the C program that * the fcntl() function exists. *//*#undef HAS_FCNTL /**//* FLEXFILENAMES * This symbol, if defined, indicates that the system supports filenames * longer than 14 characters. *//*#undef FLEXFILENAMES /**//* HAS_FLOCK * This symbol, if defined, indicates that the flock() routine is * available to do file locking. *//*#undef HAS_FLOCK /**//* HAS_GETGROUPS * This symbol, if defined, indicates that the getgroups() routine is * available to get the list of process groups. If unavailable, multiple * groups are probably not supported. *//*#undef HAS_GETGROUPS /**//* HAS_GETHOSTENT * This symbol, if defined, indicates that the gethostent() routine is * available to lookup host names in some data base or other. *//*#undef HAS_GETHOSTENT /**//* HAS_GETPGRP * This symbol, if defined, indicates that the getpgrp() routine is * available to get the current process group. *//*#undef HAS_GETPGRP /**//* HAS_GETPGRP2 * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX) * routine is available to get the current process group. *//*#undef HAS_GETPGRP2 /**//* HAS_GETPRIORITY * This symbol, if defined, indicates that the getpriority() routine is * available to get a process's priority. *//*#undef HAS_GETPRIORITY /**//* HAS_HTONS * This symbol, if defined, indicates that the htons routine (and friends) * are available to do network order byte swapping. *//* HAS_HTONL * This symbol, if defined, indicates that the htonl routine (and friends) * are available to do network order byte swapping. *//* HAS_NTOHS * This symbol, if defined, indicates that the ntohs routine (and friends) * are available to do network order byte swapping. *//* HAS_NTOHL * This symbol, if defined, indicates that the ntohl routine (and friends) * are available to do network order byte swapping. *//*#undef HAS_HTONS /**//*#undef HAS_HTONL /**//*#undef HAS_NTOHS /**//*#undef HAS_NTOHL /**//* index * This preprocessor symbol is defined, along with rindex, if the system * uses the strchr and strrchr routines instead. *//* rindex * This preprocessor symbol is defined, along with index, if the system * uses the strchr and strrchr routines instead. */#define index strchr /* cultural */#define rindex strrchr /* differences? *//* HAS_ISASCII * This symbol, if defined, indicates that the isascii routine is available * to test characters for asciiness. */#define HAS_ISASCII /**//* HAS_KILLPG * This symbol, if defined, indicates that the killpg routine is available * to kill process groups. If unavailable, you probably should use kill * with a negative process number. *//*#undef HAS_KILLPG /**//* HAS_LSTAT * This symbol, if defined, indicates that the lstat() routine is * available to stat symbolic links. *//*#undef HAS_LSTAT /**//* HAS_MEMCMP * This symbol, if defined, indicates that the memcmp routine is available * to compare blocks of memory. If undefined, roll your own. */#define HAS_MEMCMP /**//* HAS_MEMCPY * This symbol, if defined, indicates that the memcpy routine is available * to copy blocks of memory. Otherwise you should probably use bcopy(). * If neither is defined, roll your own. *//* SAFE_MEMCPY * This symbol, if defined, indicates that the memcpy routine is available * to copy potentially overlapping copy blocks of memory. Otherwise you * should probably use memmove() or bcopy(). If neither is defined, * roll your own. */#define HAS_MEMCPY /**//*#undef SAFE_MEMCPY /**//* HAS_MEMMOVE * This symbol, if defined, indicates that the memmove routine is available * to move potentially overlapping blocks of memory. Otherwise you * should use bcopy() or roll your own. *//*#undef HAS_MEMMOVE /**//* HAS_MEMSET * This symbol, if defined, indicates that the memset routine is available * to set a block of memory to a character. If undefined, roll your own. */#define HAS_MEMSET /**//* HAS_MKDIR * This symbol, if defined, indicates that the mkdir routine is available * to create directories. Otherwise you should fork off a new process to * exec /bin/mkdir. */#define HAS_MKDIR /**//* HAS_MSG * This symbol, if defined, indicates that the entire msg*(2) library is * supported. *//*#undef HAS_MSG /**//* HAS_MSGCTL * This symbol, if defined, indicates that the msgctl() routine is * available to control message passing. *//*#undef HAS_MSGCTL /**//* HAS_MSGGET * This symbol, if defined, indicates that the msgget() routine is * available to get messages. *//*#undef HAS_MSGGET /**//* HAS_MSGRCV * This symbol, if defined, indicates that the msgrcv() routine is * available to receive messages. *//*#undef HAS_MSGRCV /**//* HAS_MSGSND * This symbol, if defined, indicates that the msgsnd() routine is * available to send messages. *//*#undef HAS_MSGSND /**//* HAS_NDBM * This symbol, if defined, indicates that ndbm.h exists and should * be included. *//*#undef HAS_NDBM /**//* HAS_ODBM * This symbol, if defined, indicates that dbm.h exists and should * be included. *//*#undef HAS_ODBM /**//* HAS_OPEN3 * This manifest constant lets the C program know that the three * argument form of open(2) is available. */#define HAS_OPEN3 /**//* HAS_READDIR * This symbol, if defined, indicates that the readdir routine is available * from the C library to read directories. */#define HAS_READDIR /**//* HAS_RENAME * This symbol, if defined, indicates that the rename routine is available * to rename files. Otherwise you should do the unlink(), link(), unlink() * trick. */#define HAS_RENAME /**//* HAS_REWINDDIR * This symbol, if defined, indicates that the rewindir routine is * available to rewind directories. */#define HAS_REWINDDIR /**//* HAS_RMDIR * This symbol, if defined, indicates that the rmdir routine is available * to remove directories. Otherwise you should fork off a new process to * exec /bin/rmdir. */#define HAS_RMDIR /**//* HAS_SEEKDIR * This symbol, if defined, indicates that the seekdir routine is * available to seek into directories. */#define HAS_SEEKDIR /**//* HAS_SELECT * This symbol, if defined, indicates that the select() subroutine * exists. *//*#undef HAS_SELECT /**//* HAS_SEM * This symbol, if defined, indicates that the entire sem*(2) library is * supported. *//*#undef HAS_SEM /**//* HAS_SEMCTL * This symbol, if defined, indicates that the semctl() routine is * available to control semaphores. *//*#undef HAS_SEMCTL /**//* HAS_SEMGET * This symbol, if defined, indicates that the semget() routine is * available to get semaphores ids. *//*#undef HAS_SEMGET /**//* HAS_SEMOP * This symbol, if defined, indicates that the semop() routine is * available to perform semaphore operations. *//*#undef HAS_SEMOP /**//* HAS_SETEGID * This symbol, if defined, indicates that the setegid routine is available * to change the effective gid of the current program. *//*#undef HAS_SETEGID /**//* HAS_SETEUID * This symbol, if defined, indicates that the seteuid routine is available * to change the effective uid of the current program. *//*#undef HAS_SETEUID /**//* HAS_SETPGRP * This symbol, if defined, indicates that the setpgrp() routine is * available to set the current process group. *//*#undef HAS_SETPGRP /**//* HAS_SETPGRP2 * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX) * routine is available to set the current process group. *//*#undef HAS_SETPGRP2 /**//* HAS_SETPRIORITY * This symbol, if defined, indicates that the setpriority() routine is * available to set a process's priority. *//*#undef HAS_SETPRIORITY /**//* HAS_SETREGID * This symbol, if defined, indicates that the setregid routine is * available to change the real and effective gid of the current program. *//* HAS_SETRESGID * This symbol, if defined, indicates that the setresgid routine is * available to change the real, effective and saved gid of the current * program. *//*#undef HAS_SETREGID /**//*#undef HAS_SETRESGID /**//* HAS_SETREUID * This symbol, if defined, indicates that the setreuid routine is * available to change the real and effective uid of the current program. *//* HAS_SETRESUID * This symbol, if defined, indicates that the setresuid routine is
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -