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.
