# $Id$ Copyright (c) 2000 Center for Distributed Object Computing, Washington University, St. Louis, Missouri, USA. This is POSIX ACE (PACE). It is based on ACE, the Adaptive Communications Environment, developed by Doug Schmidt and the Distributed Object Computing Group at Washington University and the University of California, Irvine. Please see the ACE copyright notice, available at http://www.cs.wustl.edu/~schmidt/ACE_wrappers/COPYING. PACE is intended for lightweight and/or verified systems. It offers these benefits: * A strict POSIX.1-like, low-level interface. Its interface is "POSIX compatible"; by that we mean as close to POSIX.1 as it can be, given that PACE is not an operating system. And, to avoid name conflicts with OS APIs, all low-level PACE function names have the pace_ prefix. * The low-level interface is partitioned into multiple files, one per POSIX.1 section. * The low-level interface is written in C, so that it can be used in both C and C++ programs. * PACE (on most platforms) does not require the use of multiple inheritance, static objects, exception handling, or other C++ language constructs that impair code size and/or run-time performance. PACE also insulates applications from the personalities of operating systems. For example: * SunOS 5.7's intro (3) man page states that _POSIX_PTHREAD_SEMANTICS and _REENTRANT flags are automatically turned on by defining _POSIX_C_SOURCE flag with a value greater than or equal to 199506L. However, that doesn't appear to happen, so PACE does it. * On LynxOS 3.1.0 and Compaq Tru64, several POSIX functions prototypes are missing const qualifiers. PACE provides the proper function prototypes (and its implementation casts as necessary for compatibility). * LynxOS 3.1.0 has a non-POSIX signal () interface; the handler function prototype is not void (*) (int). PACE adapts its interface to the POSIX standard interface.