This section contains manual pages for the routines in libc,
the standard C library which
is automatically linked by the C compilation system.
The standard C library, libc.so, is searched at compile time by
default. Specify -dn on the
command line to link with
the archive version of this library, libc.a, and the archive
version of all other libraries being searched.
If you are compiling an application using the Release 7.1 version of
libc and the UDK, and want your application to also run on
Release 7.0.0 or Release 7.0.1, then you may need to include the following in your
If you do not, then applications built with the Release 7.1 version of
libc may not run on Release 7.0.0 or Release 7.0.1.
This is because 81 symbols from the archive part of libc
(listed in the table below) were moved into the shared part for
To provide a way for users to create applications that use these
symbols and run on all UnixWare 7 releases, an archive library
(libcudk70.a), is provided which contains only the following
symbols (moved from the archive to the shared part of
libc since Release 7.0.0):
The _stat and stat interfaces listed above are the
versions of the stat system call that provide the older System
V Release 3-style stat structure (before expanded fundamental types).
Normally, the stat.h header file translates a call to
to xstat, which has always been in the shared part libc.
New applications compiled without -l cudk70 on Release 7.1
will no longer bind the symbols listed above into their own
images and will, instead, expect to find them in the shared part
Since the native versions of the shared part of libc on Release 7.0.0
and Release 7.0.1 do not contain the above symbols, such applications will not
run on these systems.
To permit Release 7.1 applications to run on prior version of UnixWare 7,
include the libcudk70.a library during the linking phase of
compiling the application.
LIBDIR/libc.solibc library (shared object)
LIBDIR/libc.alibc library (archive)
/usr/lib/libc.so.1libc Run-time Standard C Library
For functions that return a floating-point value, if an error occurs,
the value of errno will be one of the values represented by the manifest
constants EDOM or ERANGE (defined in math.h).
EDOM typically indicates a domain error: one of the input values
was not in the domain of the function.
ERANGE typically indicates a range error: the calculated result
was either too big or too small to be represented by the data type
returned by the function.
Functions that result in a range error typically return zero for underflow
or a value that will compare equal to ±HUGE_VAL for overflow.
HUGE_VAL is defined in math.h.
On systems that support IEEE infinity, HUGE_VAL is infinity.
If the system supports IEEE NaN (not-a-number), functions that
result in a domain error typically return NaN.
Such functions may also raise one of the IEEE floating-point exceptions.
On systems that do not support IEEE NaN, functions
that result in a domain error typically return zero.
The error behavior for programs compiled with the -Xt (transitional)
compilation mode is different (see
In that case, these functions typically return zero instead
of IEEE NaN for domain errors and a value that will compare
equal to ±HUGE instead of ±HUGE_VAL for overflows.
HUGE is defined in math.h.
A character (except a multibyte character; see
is any bit pattern able to fit into a byte on the machine.
The null character is a character with value 0, conventionally
represented in the C language as \0.
A character array is a sequence of characters.
A null-terminated character array (a ``string'')
is a sequence of characters, the last of which is the null character.
The null string is a character array containing only the terminating
A NULL pointer is the value that is obtained by casting
0 into a pointer.
C guarantees that this value will not match that of any legitimate
pointer, so many functions that return pointers return NULL
to indicate an error.
The macro NULL is defined in stdio.h.
Types of the form size_t are defined in the appropriate header files.