intro(3)intro(3)Nameintro - introduction to library functions
Description
This section describes functions that may be found in various
libraries. The library functions are those other than the functions
that directly invoke ULTRIX system primitives, described in section 2.
Section 3 has the libraries physically grouped together. The functions
described in this section are grouped into various libraries:
Sections 3 and 3s
The (3) functions are the standard C library functions. The C library
also includes all the functions described in Section 2. These routines
are included for compatibility with other systems. In particular, a
number of system call interfaces provided in 4.2BSD have been included
for source code compatibility. The (3s) functions comprise the stan‐
dard I/O library. Together with the (3n), (3xti), (3yp) and (3) rou‐
tines, these functions constitute library libc, which is automatically
loaded by the C compiler (cc), the Pascal compiler (pc), and the FOR‐
TRAN compiler (f77). (FORTRAN and Pascal are optional and may not be
installed on your system.) Declarations for these functions may be
obtained from the include file, <stdio.h>. The link editor searches
this library under the -lc option. Declarations for some of these
functions may be obtained from include files indicated on the appropri‐
ate pages. On VAX machines, the GFLOAT version of libc is used when
you use the command with the -Mg option, or you use the command with
the -lcg option. The GFLOAT version of libc must be used with modules
compiled with using the -Mg option.
Note that neither the compiler nor the linker can detect when mixed
double floating point types are used, and your program may produce
erroneous results if this occurs on a VAX machine.
Section 3cur
The (3cur) library routines make up the X/Open curses library. These
routines are different from the 4.2BSD curses routines contained in
Section 3x.
Section 3f
The (3f) functions are all functions callable from FORTRAN. These
functions perform the same jobs as do the (3) functions. An unsup‐
ported FORTRAN compiler, f77, is included in the VAX distribution. FOR‐
TRAN is available as a layered product on both VAX and RISC machines.
Section 3int
The (3int) functions assist programs in supporting native language
interfaces. They are found in the internationalization library libi.
Section 3krb
The library of routines for the Kerberos authentication service. These
routines support the authentication of commonly networked applications
across machine boundaries in a distributed network.
Section 3m
The (3m) functions constitute the math library, libm. They are auto‐
matically loaded as needed by the Pascal compiler (pc) and the FORTRAN
compiler (f77). The link editor searches this library under the -lm
option. Declarations for these functions may be obtained from the
include file, < math.h >. On VAX machines, the GFLOAT version of libm
is used when you use the command with the -lcg option. Note that you
must use the GFLOAT version of libm with modules compiled using the
command with the -Mg option.
Note that neither the compiler nor the linker can detect when mixed
double floating point types are used, and the program may produce erro‐
neous results if this occurs on a VAX machine.
Section 3ncs
This section describes the NCS (Network Computing System) library rou‐
tines. The Title, Name, and See Also sections of the NCS reference
pages do not contain the dollar ($) sign in the command names and
library routines. The actual NCS commands and library routines do con‐
tain the dollar ($) sign.
Section 3n
These functions constitute the internet network library,
Section 3x
Various specialized libraries have not been given distinctive captions.
Files in which such libraries are found are named on appropriate pages.
Section 3xti
The X/Open Transport Interface defines a transport service interface
that is independent of any specific transport provider. The interface
is provided by way of a set of library functions for the C programming
language.
Section 3yp
These functions are specific to the Yellow Pages (YP) service.
Environmental Compatibility
The libraries in Sections 3, 3m, and 3s contain System V and POSIX com‐
patibility features that are available to general ULTRIX programs.
This compatibility sometimes conflicts with features already present in
ULTRIX. That is, the function performed may be slightly different in
the System V or POSIX environment. These features are provided for
applications that are being ported from System V or written for a POSIX
environment.
The descriptions in these sections include an ENVIRONMENT section to
describe any differences in function between System V or POSIX and the
standard C runtime library.
The System V compatibility features are not contained in the standard C
runtime library. To get System V-specific behavior, you must specify
that the System V environment is to be used in compiling and linking
programs. You can do this in one of two ways:
1. Using the -YSYSTEM_FIVE option for the command.
2. Globally setting the environment variable PROG_ENV to SYSTEM_FIVE.
If you are using the C shell, you would execute the following
line, or include it in your .login file:
setenv PROG_ENV SYSTEM_FIVE
If you are using the Bourne shell, you would execute the following
line, or include it in your .profile file:
PROG_ENV=SYSTEM_FIVE ; export PROG_ENV
In both cases, the command defines the preprocessor symbol SYSTEM_FIVE,
so that the C preprocessor, will select the System V version of various
data structures and symbol definitions.
In addition, if invokes the library libcV.a (the System V version of
the Standard C library) is searched before libc.a to resolve references
to the System-V-specific routines. Also, if -lm is specified on either
the or the command line, then the System V version of the math library
will be used instead of the regular ULTRIX math library.
The POSIX compatibility features are included in the library libcP.a,
so the only special action needed is to specify -YPOSIX on the command
line or set the environment variable PROG_ENV to POSIX. Either action
will cause the command to define the preprocessor symbol POSIX and
search the POSIX library.
Files
/usr/lib/libc.a
/usr/lib/lib_cg.a (VAX only)
/usr/lib/libm.a
/usr/lib/libc_p.a (VAX only)
/usr/lib/m_g.a (VAX only)
/usr/lib/libm_p.a (VAX only)
Diagnostics
Functions in the math library (3m) may return conventional values when
the function is undefined for the given arguments or when the value is
not representable. In these cases the external variable errno is set
to the value EDOM (domain error) or ERANGE (range error). For further
information, see The values of EDOM and ERANGE are defined in the
include file <math.h>.
See Alsocc(1), ld(1), nm(1), intro(2)intro(3m), intro(3n), intro(3ncs),
intro(3s), intro(3xti)intro(3)