Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ cc(1) — HP-UX ANSI C A.10.11

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

helpview(1X)

lint(1)

cb(1)

cxref(1)

gprof(1)

prof(1)

monitor(3C)

dde(1)

xdb(1)

adb(1)

as(1)

cpp(1)

ld(1)

cc_bundled(1)

matherr(3M)

fpgetround(3M)

strip(1)

crt0(3)

end(3C)

exit(2)

cc(1)

Requires Optional ANSI C Compiler Software

NAME

cc, c89 − C compiler

SYNOPSIS

cc [options] files
c89 [options] files

DESCRIPTION

cc is the HP-UX C compiler.  c89 is the HP-UX POSIX -conforming C compiler.  Both accept several types of arguments as files:

• Arguments whose names end with .c are understood to be C source files.  Each is compiled and the resulting object file is left in a file having the corresponding basename, but suffixed with .o instead of .c.  However, if a single C file is compiled and linked, all in one step, the .o file is deleted. 

• Similarly, arguments whose names end with .s are understood to be assembly source files and are assembled, producing a .o file for each .s file. 

• Arguments whose names end with .i are assumed to be the output of cpp (see the -P option below).  They are compiled without invoking cpp (see cpp(1)). Each object file is left in a file having the corresponding basename, but suffixed .o instead of .i. 

• Arguments of the form -lx cause the linker to search the library libx.sl or libx.a in an attempt to resolve currently unresolved external references.  Because a library is searched when its name is encountered, placement of a -l is significant.  If a file contains an unresolved external reference, the library containing the definition must be placed after the file on the command line.  See ld(1) for further details.

• Arguments of the form -l:libx.suffix cause the linker to search the library libx.sl or libx.a (depending on suffix) in an attempt to resolve currently unresolved external references. It is similar to the -l option except the current state of the -Wl,-a option is not important. 

• All other arguments, such as those whose names end with .o or .a, are taken to be relocatable object files that are to be included in the link operation. 

Arguments and options can be passed to the compiler through the CCOPTS environment variable as well as on the command line.  The compiler reads the value of CCOPTS and divides these options into two sets; those options which appear before a vertical bar (|), and those options which appear after the vertical bar.  The first set of options are placed before any of the command-line parameters to cc; the second set of options are placed after the command-line parameters to cc.  If the vertical bar is not present, all options are placed before the command-line parameters.  For example (in sh(1) notation),

CCOPTS= "-v | -lmalloc"
export CCOPTS
cc -w prog.c

is equivalent to

cc -v -w prog.c -lmalloc

When set, the TMPDIR environment variable specifies a directory to be used by the compiler for temporary files, overriding the default directory /var/tmp. 

Options

The following option is recognized only by
cc:

-Amode Specify the compilation standard to be used by the compiler.  mode can be one of the following letters:

c (Default) Compile in a mode compatible with HP-UX releases prior to 7.0.  (See The C Programming Language, First Edition by Kernighan and Ritchie). This option also defines the symbol _HPUX_SOURCE and allows the user to access macros and typedefs provided by the HPUX Operating System. The default compilation mode may change in future releases. 

a Compile under ANSI mode ( ANSI programming language C standard ISO 9899:1990).  When compiling under ANSI mode, the header files would define only those names (macros and typedefs) specified by the Standard. To access macros and typedefs that are not defined by the ANSI Standard but are provided by the HPUX Operating System, define the symbol _HPUX_SOURCE; or use the extension option described below. 

e Extended ANSI mode.  Same as -Aa -D_HPUX_SOURCE +e.  This would define the names (macros and typedefs) provided by the HPUX Operating System and, in addition, allow the following extensions: $ characters in identifier names, sized enums, sized bit-fields, and 64-bit integral type long long.  Additional extensions may be added to this option in the future. 

The following options are recognized by both cc and c89:

-c Suppress the link edit phase of the compilation, and force an object (.o) file to be produced for each .c file even if only one program is compiled.  Object files produced from C programs must be linked before being executed. 

-C Prevent the preprocessor from stripping C-style comments (see cpp(1) for details).

-Dname=def

-Dname Define name to the preprocessor, as if by ’#define’.  See cpp(1) for details.

-E Run only cpp on the named C or assembly files, and send the result to the standard output. 

-g Cause the compiler to generate additional information needed by the symbolic debugger. 

-G Prepare object files for profiling with gprof (see gprof(1)).

-Idir Change the algorithm used by the preprocessor for finding include files to also search in directory dir. See cpp(1) for details.

-lx Refer to the fourth and fifth bullet items at the beginning of the DESCRIPTION section. 

-L dir Change the algorithm used by the linker to search for libx.sl or libx.a.  The -L option causes cc to search in dir before searching in the default locations.  See ld(1) for details.

-n Cause the output file from the linker to be marked as shareable.  For details and system defaults, see ld(1).

-N Cause the output file from the linker to be marked as unshareable.  For details and system defaults, see ld(1).

-ooutfile Name the output file from the linker outfile. The default name is a.out. 

-O Invoke the optimizer with level 2 optimization.  Equivalent to +O2. 

-p Arrange for the compiler to produce code that counts the number of times each routine is called.  Also, if link editing takes place, replace the standard startup routine by one that automatically calls monitor() at the start (see monitor(3C)) and arranges to write out a mon.out file at normal termination of execution of the object program.  prof can then be used to generate an execution profile (see prof(1)).

-P Run only cpp on the named C files and leave the result on corresponding files suffixed .i.  The -P option is also passed along to cpp. 

-q Cause the output file from the linker to be marked as demand loadable.  For details and system defaults, see ld(1).

-Q Cause the output file from the linker to be marked as not demand loadable.  For details and system defaults, see ld(1).

-s Cause the output of the linker to be stripped of symbol table information.  See strip(1) for more details. The use of this option prevents the use of a symbolic debugger on the resulting program. See ld(1) for more details.

-S Compile the named C files, and leave the assembly language output on corresponding files suffixed .s. 

-tx,name Substitute subprocess x with name where x is one or more of a set of identifiers indicating the subprocess(es).  This option works in two modes:  1) if x is a single identifier, name represents the full path name of the new subprocess; 2) if x is a set of identifiers, name represents a prefix to which the standard suffixes are concatenated to construct the full path names of the new subprocesses. 

The x can take one or more of the values:

p Preprocessor (standard suffix is cpp)

c Compiler (standard suffix is ccom)

a Assembler (standard suffix is as)

l Linker (standard suffix is ld)

u Stand-alone Code Generator (standard suffix is ucomp)

-Uname Remove any initial definition of name in the preprocessor.  See cpp(1) for details.

-v Enable verbose mode, which produces a step-by-step description of the compilation process on the standard error. 

-w Suppress warning messages. 

-Wx,arglist Pass the comma-separated argument[s] in arglist to subprocess x. The -W option specification allows additional, implementation-specific options to be recognized by the compiler driver.  For example,

-Wl,-a,archive

causes the linker to link with archive libraries instead of with shared libraries.  See ld(1) for details. For some options, a shorthand notation for this mechanism can be used by placing + in front of the option name as in

+L

which is equivalent to

-Wc,-L

which causes the compiler to produce a source listing.  Options that can be abbreviated using + are implementation dependent, and are listed under DEPENDENCIES. 

The x can assume one of the following values:

d Driver

p Preprocessor

c Compiler

a Assembler

l Linker

-y Generate additional information needed by static analysis tools, and ensure that the program is linked as required for static analysis.  This option is incompatible with optimization. 

-Y Enable support of multi-byte characters inside string literals and comments.  Note that 8-bit parsing is always supported.  See hpnls(5) for more details on International Support.

-z Do not bind anything to address zero.  This option allows runtime detection of null pointers.  See the note on pointers below. 

-Z Allow dereferencing of null pointers.  See the note on pointers below.  The -z and -Z are linker options.  See ld(1) for more details.

+z,+Z Both of these options cause the compiler to generate position independent code (PIC) for use in building shared libraries.  The -G and -p options are ignored if +z or +Z is used.  Normally, +z should be used to generate PIC; however, when certain limits are exceeded, +Z is required to generate PIC.  The ld linker issues the error indicating when +Z is required.  If both +z and +Z are specified, only the last one encountered applies.  For a more complete discussion regarding PIC and these options, see the manual Programming on HP-UX.

Any other options encountered generate a warning to standard error. 

Other arguments are assumed to be C-compatible object programs, typically produced by an earlier cc run, or perhaps libraries of C-compatible routines.  These programs, together with the results of any compilations specified, are linked (in the order given) to produce an executable program with the name a.out. 

EXTERNAL INFLUENCES

Environment Variables

When the -Y option is invoked, LC_CTYPE determines the interpretation of string literals and comments as single and/or multi-byte characters. 

LANG determines the language in which messages are displayed. 

If LC_CTYPE is not specified in the environment or is set to the empty string, the value of LANG is used as a default for each unspecified or empty variable.  If LANG is not specified or is set to the empty string, a default of "C" (see lang(5)) is used. If any internationalization variable contains an invalid setting, cc behaves as if all internationalization variables are set to "C".  See environ(5).

International Code Set Support

Single- and multi-byte character code sets are supported. 

MP_NUMBER_OF_THREADS
This environment variable specifies the number of processors that are to execute programs that have been compiled for parallel execution. If not set, it defaults to the number of processors on the executing machine. The following command lines show the C shell syntax and Korn shell syntax (respectively) to use when setting the variable to 2 processors:

setenv MP_NUMBER_OF_THREADS 2
export MP_NUMBER_OF_THREADS=2

DIAGNOSTICS

The diagnostics produced by C itself are intended to be self-explanatory. 
Occasionally, messages may be produced by the preprocessor, assembler or the linker.

If any errors occur before cc is completed, a non-zero value is returned.  Otherwise, zero is returned. 

EXAMPLES

The following compiles the C file prog.c to create a prog.o file, then invokes the ld linker  to link prog.o and procedure.o with all the C startup routines in /usr/ccs/lib/crt0.o and library routines from the C library libc.sl or libc.a.  The resulting executable program is placed in file prog:

cc prog.c procedure.o -o prog

WARNINGS

Options not recognized by cc are not passed on to the linker.  The option -Wl,arg can be used to pass any such option to the linker. 

By default, the return value from a C program is completely random.  The only two guaranteed ways to return a specific value are to explicitly call exit() (see exit(2)) or leave the function main() with a return expression; construct. 

DEPENDENCIES

The default is to allow null pointer dereferencing, hence using -Z has no effect. 

The -g option is incompatible with optimization levels greater than 2.  In this case, the -g is ignored. 

The -y option is incompatible with optimization.  If both static analysis and optimization are specified, only the first option encountered takes effect. 

The +k option is incompatible with the +z,+Z options.  In this case, the +k option is ignored in favor of the +z,+Z options. 

The -s option is incompatible with the -g, -G, -p, and -y options.  If -s is specified along with any of the above options, the -s option is ignored, regardless of the order in which the options were specified. 

The compiler supports the following additional options.  The +opt1 notation can be used as a shorthand notation for some -Wc options. 

-Wd,-a When processing files which have been written in assembly language, does not assemble with the prefix file which sets up the space and subspace structure required by the linker.  Files assembled with this option cannot be linked unless they contain the equivalent information. 

-eepsym Set the default entry point address for the output file to be that of the symbol epsym. (This option only applies to executable files.)

-r Retain relocation information in the output file for subsequent re-linking.  The ld command does not report undefined symbols. 

-usymbol Enter symbol as an undefined symbol in ld’s symbol table.  The resulting unresolved reference is useful for linking a program solely from object files in a library.  More than one symbol can be specified, but each must be preceded by -u. 

-V Cause each invoked subprocess to print its version information to stdout. 

+DAarchitecture Generate code for the architecture specified.  architecture is required.  The default code generated for the Series 800 is PA_RISC_1.0.  The default code generated for the series 700 is PA_RISC_1.1.  The default code generation can be overridden using the CCOPTS environment variable or the command line option +DA.  architecture can be either a model number (e.g., 750 for the HP 9000/750 or 870 for the HP 9000/870) or one of the following generic specifications:

1.0 Precision Architecture RISC, version 1.0 or higher.  This is the default for all Series 800 models. 

1.1 Precision Architecture RISC, version 1.1.  This is the default for all Series 700 models. 

The compiler determines the target architecture using the following precedence:

1.  Command line specification of +DA. 

2.  Specification of +DA in the CCOPTS environment variable. 

3.  The default as mentioned above. 

+DSarchitecture Use the instruction scheduler tuned to the architecture specified.  architecture is required.  If this option is not used, the compiler uses the instruction scheduler for the architecture on which the program is compiled.  The architecture is determined by uname() (see uname(2)). architecture can be a model number (e.g, 750 for the HP 9000/750 or 870 for the HP 9000/870). 

+dfname Specify profile database file name for profile based optimizations.  The default is flow.data if name is not specified.  Data for more than one application can be kept in the same file.  +df requires the specification of +P.  See ld(1), +P, and +pgm for more details. 

+e Enables HP value-added features while compiling in ANSI C mode, -Aa.  This option is ignored with -Ac because these features are already provided.  Features enabled:

• Long pointers

• Integral type specifiers can appear in enum declarations. 

• The $ character can appear in identifier names. 

• Missing parameters on intrinsic calls

+ESlit Place string literals and const-qualified data into read-only memory.  This may save space in the resulting executable by coalescing identical string literals, and can promote data sharing in a multi-user application. 

+ESsfc Replace millicode calls with in-line code when performing function pointer comparisons.  Care should be taken when using this option and pointers to shared library routines are being compared. 

+f Inhibit the automatic promotion of float to double when evaluating expressions.  This differs from +r (see below) in that parameters and function return values are promoted.  This option is ignored and a warning is produced if ANSI mode is in effect. 

+FPstring Specifies how the run time behavior for floating-point operations should be initialized at program start-up.  The default is that all behaviors are disabled.  See ld(1) for specific values of string. To dynamically change these settings at run time, refer to fpgetround(3M).

+I Instrument the application for profile based optimization.  See ld(1), +P, and +pgm for more details.  This option is incompatible with -G, -g, +m, +o, -p, -S, and -y. 

+k Cause the compiler to generate the proper instruction sequence necessary for accessing shared global data items, when a program uses a large number of global data items.  The linker will issue an error message when this option is needed. 

+L Enable the listing facility and any listing pragmas.  A straight listing prints:

• A header on the top of each page

• Line numbers

• The nesting level of each statement

• The postprocessed source file with expanded macros, included files, and no user comments (unless the -C option is used). 

If the -Aa option is used to compile under ANSI C, the listing shows the original source file rather than the postprocessed source file. 

+Lp Print a listing as described above, but show the postprocessed source file even if one of the ANSI compilation levels is selected.  This option is ineffective if the -y option is used. 

+m Cause the identifier maps to be printed.  First, locals by function are listed, then all global identifiers are listed.  All other identifiers are then listed by function at the end of the listing.  For struct and union members, the address column contains B@b, where B is the byte offset and b is the bit offset.  Both B and b are in hexadecimal.  This option is incompatible with +I and +P. 

+M Cause the ANSI migration warnings to be emitted.  These warnings alert the programmer to the so-called Quiet Changes between the K&R behavior ( -Ac) and the ANSI behavior ( -Aa).  For details on the Quiet Changes, refer to the Rationale Document which is available with the ANSI Programming Language C Standard ISO 9899:1990. 

+o Cause the code offsets to be printed in hexadecimal; they are grouped by function at the end of the listing.  This option is incompatible with +I and +P. 

+Olevel Invoke optimizations selected by level. Defined values for level are:

0 Perform no optimizations.  This is the default. 

1 Perform optimizations within basic blocks only. 

2 Perform level 1 and global optimizations.  Same as -O. 

3 Perform level 2 as well as interprocedural global optimizations. 

4 Perform level 3 as well as doing link time optimizations.  Also sends +Oprocelim and +Ofastaccess to the linker (see ld(1)).

+P Optimize the application based on profile data found in the database file flow.data, produced by compilation with +I.  See ld(1), +I, +df, and +pgm for more details.  This option is incompatible with -G, -g, +m, +o, -p, -S, and -y. 

+pgmname Specify a profile database lookup name within the database file name. +pgm requires that either +I or +P be specified.  See also ld(1), +P, +I, and +df for more details. 

+r Inhibits the automatic promotion of float to double when evaluating expressions and passing arguments.  This option is ignored and a warning produced if the ANSI mode is in effect (see also +f). 

+Rnum Allow only the first num register variables to actually have the register class.  Use this option when the register allocator issues an out of general registers message. 

+unum Allow pointers to access non-natively aligned data.  This option alters the way that the compiler accesses dereferenced data.  Use of this option may reduce the efficiency of generated code. 

1 Assume single byte alignment.  Dereferences are performed with a series of single-byte loads and stores. 

2 Dereferences are performed with a series of two-byte loads and stores.  This is the default. 

4 Dereferences are performed with a series of four-byte loads and stores. 

+wn Specify the level of the warning messages.  The value of n can be one of the following values:

1 All warnings are issued (except for ANSI migration warnings; see +M). 

2 Only warnings indicating that code generation might be affected are issued.  Equivalent to the compiler default without any w opts. 

3 No warnings are issued.  Equivalent to the -w option. 

+y Generate static analysis information for all global identifiers not used in the original source file.  This option only has effect if used in conjunction with the -y option. 

The following additional optimization options allow the user to enable or disable specific optimization techniques:

+O[no]entrysched
Perform [do not perform] instruction scheduling on a subprogram’s entry and exit code sequences. This optimization can occur at optimization levels 1, 2, 3, and 4. The default is +Onoentrysched. 

+O[no]fastaccess
Enable [disable] fast access to global data. This optimization can occur at optimization levels 0, 1, 2, 3, and 4. The default is +Onofastaccess at optimization levels 0, 1, 2, and 3; at optimization level 4 the default is +Ofastaccess. 

+O[no]fltacc Disable [enable] optimizations that can result in roundoff.  This option can be used at optimization levels 2, 3, and 4.  The default is +Ofltacc. 

+O[no]initcheck
Enable [disable] initialization of any local, scalar, non-static variable that is uninitialized with respect to at least one path leading to its use. This optimization can occur at optimization levels 2, 3, and 4. The default is to enable initialization if the variable is uninitialized with respect to every path leading to its use.

+O[no]inline[=name1, name2, ... nameN]
Request [disable] inlining for the specified procedures.  If specified without a namelist, +O[no]inline requests [disables] inlining for all procedures in the compilation unit.  This option can be used at optimization levels 3 and 4.  The default is +Oinline. 

+O[no]libcalls
Use [do not use] low-call-overhead versions of select library routines. This option can be used at optimization levels 2, 3, and 4. The default is +Onolibcalls. 

+O[no]loop_transform
Transform [do not transform] eligible loops for improved cache performance. This option can be used at optimization levels 3 and 4. The default is +Oloop_transform. 

+O[no]moveflops
Enable [disable] moving conditional floating point instructions out of loops. This option can be used at optimization levels 2, 3, and 4. The default is +Omoveflops. 

+O[no]parallel
Transform [do not transform] eligible loops for parallel execution on multiprocessor machines. Any files that were compiled with +Oparallel must also be linked with +Oparallel.  This option can be used at optimization levels 3 and 4.  The default is +Onoparallel. 

+O[no]parmsoverlap
Optimize with the assumption that subprogram arguments may [do not] refer to the same memory. This option can be used at optimization levels 2, 3, and 4. The default is +Oparmsoverlap. 

+O[no]pipeline
Enable [disable] software-pipelining. This optimization can occur at optimization levels 2, 3, and 4. The default is +Opipeline. 

+O[no]procelim
Remove [do not remove] any unreferenced procedures from the output executable file.

+O[no]regionsched
Apply [do not apply] aggressive scheduling techniques to move instructions across branches. This optimization can occur at optimization levels 2, 3, and 4. The default is +Onoregionsched. 

+O[no]regreassoc
Enable [disable] register reassociation. This optimization can occur at optimization levels 2, 3, and 4. The default is +Oregreassoc. 

+O[no]sideeffects=name1, name2,...,nameN
Optimize with the assumption that the specified subprograms do [do not] modify global variables and are therefore ineligible for inlining. This optimization can occur at optimization levels 2, 3, and 4. The default is to assume that all subprograms have side-effects unless the optimizer can determine that there are none.

+O[no]signedpointers
Enable [disable] the treating of pointers as signed quantities. This optimization can occur at optimization levels 0, 1, 2, 3, and 4. The default is +Onosignedpointers. 

+O[no]vectorize
Enable [disable] the replacement of selected single-precision loops with vector calls. This optimization can occur at optimization levels 3 and 4. The default is +Onovectorize. 

+O[no]volatile
Enable [disable] the treating of all global variables as volatile quantities. This optimization can occur at optimization levels 1, 2, 3, and 4. The default is +Onovolatile. 

The following "pre-packaged" optimization options allow the user to enable or disable groups of optimization techniques:

+O[no]aggressive
Apply [do not apply] aggressive optimizations; that is, new optimizations and the optimizations invoked by the following option settings:

+Oentrysched
+Onofltacc
+Onoinitcheck
+Olibcalls
+Onoparmsoverlap
+Oregionsched
+Osignedpointers
+Ovectorize

These optimizations can occur at levels 2, 3, and 4. The default is +Onoaggressive. 

+O[no]all
Apply [do no apply] all optimizations enabled by the +Oaggressive and +Olimit options.  These optimizations can occur at level 4 only.  The default is +Onoall. 

+O[no]conservative
Make [do not make] conservative assumptions about the program when optimizing. These optimizations can occur at levels 2, 3, and 4. The default is +Onoconservative. 

+O[no]limit
Suppress [do not suppress] optimizations that significantly increase compile-time or consume enormous amounts of memory. These optimizations can occur at levels 2, 3, and 4. The default is +Olimit. 

+O[no]size
Suppress [do not suppress] optimizations that significantly increase code size. These optimizations can occur at levels 2, 3, and 4. The default is +Onosize. 

FILES

file.c input file

file.o object file

a.out linked executable output file

/var/tmp/ctm* temporary files used by the compiler

/usr/ccs/bin/as assembler (see as(1))

/usr/ccs/bin/ld linker (see ld(1))

/opt/langtools/lib/crt0.o run-time startup code

/opt/langtools/lib/mpcrt0.o run-time startup code for programs compiled for parallel execution

/opt/langtools/lib/icrt0.o Startoff for Instrumentation via +I

/opt/langtools/lib/scrt0.o like icrt0.o except it is for shared libraries. 

/opt/langtools/lib/gcrt0.o startup code for use with profiling via gprof

/opt/langtools/lib/mpgcrt0.o startup code for using gprof with programs compiled for parallel execution

/opt/langtools/lib/mcrt0.o startup code for use with profiling via prof

/usr/lib/libc.a standard C library (archive version), see HP-UX Reference Section (3). 

/usr/lib/libc.sl standard C library (shared version), see HP-UX Reference Section (3). 

/usr/lib/libp/libc.a C library for profiled programs (archive version) via -p/-G

/usr/include standard directory for #include files

ANSI C compiler Files

/opt/ansic/bin/cc C driver

/opt/ansic/lbin/ccom C compiler

/opt/ansic/lib/nls/msg/$LANG/cc.cat
C compiler message catalog

/opt/langtools/lbin/cpp preprocessor

/opt/langtools/lbin/cpp.ansi preprocessor for ANSI C

/opt/langtools/lbin/ucomp Stand-alone code generator

/opt/langtools/lib/sched.models
processor implementation file

SEE ALSO

Online help:

helpview(1X) HP Vue online help system for C.  Select the "?" icon on the HP Vue front panel, or type the command  helpview,  which  is  in either /usr/vue/bin or /usr/vhelp/bin. 

Program management and analysis tools:

lint(1) C program checker/verifier

cb(1) C program beautifier, formatter

cxref(1) generate C program cross-reference

Profiling and debugging tools:

gprof(1) display call graph profile data

prof(1) display profile data

monitor(3C) prepare execution profile

dde(1) C, C++, Fortran, and Pascal symbolic debugger

xdb(1) C, C++, Fortran, and Pascal symbolic debugger

adb(1) absolute debugger

System tools:

as(1) translate assembly code to machine code

cpp(1) invoke the the C language preprocessor

ld(1) invoke the linker

cc_bundled(1) the bundled (limited functionality) C compiler on HP-UX. 

Miscellaneous:

matherr(3M) trap math errors

fpgetround(3M) floating-point mode-control functions

strip(1) strip symbol and line number information from an object file

crt0(3) execution startup routine

end(3C) symbol of the last locations in program

exit(2) termination of a process

Tutorials and Standards Documents:

B. W. Kernighan and D. M. Ritchie, The C Programming Language, Prentice-Hall, 1978.

American National Standard for Information Systems − Programming language C, ANS X3.159-1989

STANDARDS CONFORMANCE

cc: SVID2, SVID3, XPG2, XPG3

c89: POSIX.2

Hewlett-Packard Company  —  HP-UX Release 10.01: May 1995

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026