/* * Copyright (c) 1995 Colin Plumb. All rights reserved. * For licensing and other legal details, see the file legal.c. * * This file includes , if it's available, and * declares a bunch of functions with "traditional" values if not. * The GNU Libc Manual (node "Version Supported") says this is impossible; * I wonder what they think of this. */ #include /* * See if this is a POSIX . A POSIX system *may* define * a macro for ARG_MAX, but it may instead defined _SC_ARG_MAX * in and require you yo use sysconf() to get the value. * However, a POSIX system is supposed to defined _POSIX_ARG_MAX * in with the value of 4096, the POSIX-mandated lower * bound on ARG_MAX or sysconf(_SC_ARG_MAX). * A POSIX system is supposed to define most of these, so checking for * them *all* is overkill, but it's easy enough... */ #ifndef HAVE_UNISTD_H #ifdef __POSIX__ /* Defined by GCC on POSIX systems */ #define HAVE_UNISTD_H 1 #elif defined(_POSIX_ARG_MAX) || defined(_POSIX_CHILD_MAX) #define HAVE_UNISTD_H 1 #elif defined(_POSIX_LINK_MAX) || defined(_POSIX_MAX_CANON) #define HAVE_UNISTD_H 1 #elif defined(_POSIX_MAX_INPUT) || defined(_POSIX_NAME_MAX) #define HAVE_UNISTD_H 1 #elif defined(_POSIX_NGROUPS_MAX) || defined(_POSIX_OPEN_MAX) #define HAVE_UNISTD_H 1 #elif defined(_POSIX_PATH_MAX) || defined(_POSIX_PIPE_BUF) #define HAVE_UNISTD_H 1 #elif defined(_POSIX_RE_DUP_MAX) || defined(_POSIX_SSIZE_MAX) #define HAVE_UNISTD_H 1 #elif defined(_POSIX_STREAM_MAX) || defined (_POSIX_TZNAME_MAX) #define HAVE_UNISTD_H 1 #endif #endif #if HAVE_UNISTD_H #include #elif defined(MSDOS) #include /* Where MSDOS keeps such things */ #else /* Not POSIX - declare the portions of we need manually. */ int ioctl(int fd, int request, void *arg); int isatty(int fd); int read(int fd, void *buf, int nbytes); unsigned sleep(unsigned seconds); #endif