1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# $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.
|