NAME intro - introduction to subroutines and libraries SYNTAX #include #include 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 . (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 . 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 ; the user can include an appropriate definition if not using . 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 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.