Files
oldlinux-files/Minix/1.7.5/MANUALS/CAT3/INTRO.3
2024-02-19 00:21:39 -05:00

119 lines
5.8 KiB
Groff

NAME
intro - introduction to subroutines and libraries
SYNTAX
#include <stdio.h>
#include <math.h>
DESCRIPTION
This section describes functions found in various libraries,
other than those functions that directly invoke UNIX system
primitives, which are described in Section 2 of this volume.
Certain major collections are identified by a letter after
the section number:
(3C) These functions, together with those of Section 2 and
those marked (3S), constitute the Standard C Library
libc, which is automatically loaded by the C compiler,
cc(1). The link editor ld(1) searches this library
under the -lc option. Declarations for some of these
functions may be obtained from #include files
indicated on the appropriate pages.
(3S) These functions constitute the ``standard I/O
package'' [see stdio(3S)]. These functions are in the
library libc, already mentioned. Declarations for
these functions may be obtained from the #include file
<stdio.h>.
(3M) These functions constitute the Math Library, libm.
They are automatically loaded as needed by the FORTRAN
compiler f77(1). They are not automatically loaded by
the C compiler, cc(1); however, the link editor
searches this library under the -lm option.
Declarations for these functions may be obtained from
the #include file <math.h>. Several generally useful
mathematical constants are also defined there [see
math(5)].
(3X) Various specialized libraries. The files in which
these libraries are found are given on the appropriate
pages.
(3F) These functions constitute the FORTRAN intrinsic
function library, libF77. These functions are
automatically available to the FORTRAN programmer and
require no special invocation of the compiler.
There are separate library files for use with small, large
and huge model programs (see "Files," below). Normally,
ld(1) automatically selects the correct library file for the
memory model you are using. However, if you specify the
library file yourself, be sure that it matches the memory
model of your program.
DEFINITIONS
A character is any bit pattern able to fit into a byte on
the machine. The null character is a character with value
0, represented in the C language as '\0'. A character array
is a sequence of characters. A null-terminated character
array is a sequence of characters, the last of which is the
null character. A string is a designation for a null-
terminated character array. The null string is a character
array containing only the null character. A NULL pointer is
the value that is obtained by casting 0 into a pointer. The
C language guarantees that this value will not match that of
any legitimate pointer, so many functions that return
pointers return it to indicate an error. NULL is defined as
0 in <stdio.h>; the user can include an appropriate
definition if not using <stdio.h>.
Many groups of FORTRAN intrinsic functions have generic
function names that do not require explicit or implicit type
declaration. The type of the function will be determined by
the type of its argument(s). For example, the generic
function max will return an integer value if given integer
arguments (max0), a real value if given real arguments
(amax1), or a double-precision value if given double-
precision arguments (dmax1).
FILES
/lib/small/libc.a
/lib/large/libc.a
/lib/huge/libc.a
/lib/small/libm.a
/lib/large/libm.a
/lib/huge/libm.a
/usr/small/lib/libF77.a
/usr/large/lib/libF77.a
/usr/huge/lib/libF77.a
SEE ALSO
intro(2), stdio(3S), math(5).
ar(1), cc(1), f77(1), ld(1), lint(1), nm(1) in the UNIX
System V User Reference Manual.
DIAGNOSTICS
Functions in the C and Math Libraries (3C and 3M) may return
the conventional values 0 or _HUGE (the largest-magnitude
single-precision floating-point numbers; HUGE is defined in
the <math.h> header file) when the function is undefined for
the given arguments or when the value is not representable.
In these cases, the external variable errno [see intro(2)]
is set to the value EDOM or ERANGE. As many of the FORTRAN
intrinsic functions use the routines found in the Math
Library, the same conventions apply.
WARNING
Many of the functions in the libraries call and/or refer to
other functions and external variables described in this
section and in section 2 (System Calls). If a program
inadvertantly defines a function or external variable with
the same name, the presumed library version of the function
or external variable may not be loaded. The lint(1) program
checker reports name conflicts of this kind as ``multiple
declarations'' of the names in question. Definitions for
sections 2, 3C, and 3S are checked automatically. Other
definitions can be included by using the -l option (for
example, -lm includes definitions for the Math Library,
section 3M). Use of lint is highly recommended.