Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ar(1)

cc(1)

ld(1)

lint(1)

nm(1)

intro(2)

stdio(3S)

math(5)



          INTRO(3)             INTERACTIVE UNIX System             INTRO(3)



          NAME
               intro - introduction to functions and libraries

          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).  (For this reason the (3C) and (3S) sections
                     together comprise one section of this manual.)  The
                     link editor ld(1) searches this library under the -lc
                     option.  A "shared library" version of libc can be
                     searched using the -lc_s option, resulting in smaller
                     a.outs.  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 pack-
                     age'' [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 not automatically loaded by the C compiler,
                     cc(1); however, the link editor searches this library
                     under the -lm option.  Declarations for these func-
                     tions may be obtained from the #include file <math.h>.
                     Several generally useful mathematical constants are
                     also defined there [see math(5)].
               (3N)  This contains sets of functions constituting the Net-
                     work Services library.  These sets provide protocol
                     independent interfaces to networking services based on
                     the service definitions of the OSI (Open Systems
                     Interconnection) reference model.  Application
                     developers access the function sets that provide ser-
                     vices at a particular level.
                     The function sets contained in the library are:
                         TRANSPORT INTERFACE (TI)-provide the services of
                         the OSI Transport Layer.  These services provide
                         reliable end-to-end data transmission using the
                         services of an underlying network.  Applications
                         written using the TI functions are independent of
                         the underlying protocols.  Declarations for these
                         functions may be obtained from the #include file
                         <tiuser.h>.  The link editor ld(1) searches this
                         library under the -lnsl_s option.
               (3X)  Various specialized libraries.  The files in which
                     these libraries are found are given on the appropriate
                     pages.


          Rev.                                                       Page 1





          INTRO(3)             INTERACTIVE UNIX System             INTRO(3)



          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 defini-
               tion if not using <stdio.h>.

          Netbuf
               In the Network Services library, netbuf is a structure used
               in various Transport Interface (TI) functions to send and
               receive data and information.  It contains the following
               members:

                     unsigned int maxlen;
                     unsigned int len;
                     char *buf;

               Buf points to a user input and/or output buffer.  Len gen-
               erally specifies the number of bytes contained in the
               buffer.  If the structure is used for both input and output,
               the function will replace the user value of len on return.

               Maxlen generally has significance only when buf is used to
               receive output from the TI function.  In this case, it
               specifies the physical size of the buffer, the maximum value
               of len that can be set by the function.  If maxlen is not
               large enough to hold the returned information, a TBUFOVFLW
               error will generally result.  However, certain functions may
               return part of the data and not generate an error.

          FILES
               LIBDIR     usually /lib
               LIBDIR/libc.a
               LIBDIR/libc_s.a
               LIBDIR/libm.a
               /shlib/libc_s
               /shlib/libnsl_s (3N)
               /usr/lib/libnsl_s.a (3N)

          SEE ALSO
               ar(1), cc(1), ld(1), lint(1), nm(1), intro(2), stdio(3S),
               math(5).

          DIAGNOSTICS


          Rev.                                                       Page 2





          INTRO(3)             INTERACTIVE UNIX System             INTRO(3)



               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.

          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 inad-
               vertently 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 Section 3M, the Math
               Library.)  Use of lint is highly recommended.


































          Rev.                                                       Page 3



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