Annotation of 43BSDReno/share/doc/ps1/01.Clang/Clib.ms, revision 1.1

1.1     ! root        1: .\"    @(#)Clib.ms     6.1 (Berkeley) 5/14/86
        !             2: .\"
        !             3: .so /k3/unx/MACROS/cmac1
        !             4: .CH 3 "C LIBRARIES"
        !             5: .H 1 "C LIBRARIES"
        !             6: .H 2 "GENERAL"
        !             7: .P
        !             8: This chapter and Chapter 4 describe the libraries that
        !             9: are supported on the  UNIX operating system.
        !            10: A library is a collection of related functions and/or declarations
        !            11: that simplify programming effort
        !            12: by linking only what is needed,
        !            13: allowing use of locally produced functions, etc.
        !            14: All of the functions described are also described in
        !            15: Part 3 of the
        !            16: .I "UNIX System Programmer Reference Manual" .
        !            17: Most of the declarations described are in Part 5 of the
        !            18: .I "UNIX System Programmer Reference Manual" .
        !            19: The three main libraries on the UNIX system are:
        !            20: .tr ~ 
        !            21: .VL 20
        !            22: .LI ~\fBC~library\fR
        !            23: This is the basic  library for C language programs.
        !            24: The C library is composed of functions and declarations used for file access,
        !            25: string testing and manipulation, character testing and manipulation, memory allocation, and other functions.
        !            26: This library is described later in this chapter.
        !            27: .tr ~ 
        !            28: .LE
        !            29: .VL 20
        !            30: .LI ~\fBObject~file\fR
        !            31: This library provides functions for the access and manipulation of
        !            32: object files.
        !            33: This library is described in Chapter 4.
        !            34: .tr ~ 
        !            35: .LE
        !            36: .VL 20
        !            37: .LI ~\fBMath~library\fR
        !            38: This library provides exponential, bessel functions, logarithmic,
        !            39: hyperbolic, and trigonometric functions.
        !            40: This library is described in Chapter 4.
        !            41: .LE
        !            42: .P
        !            43: Some libraries consist of two portions - functions and declarations.
        !            44: In some cases, the user must request that the functions (and/or declarations) of a specific library be included
        !            45: in a program being compiled.
        !            46: In other cases, the functions (and/or declarations) are included automatically.
        !            47: .H 3 "Including Functions"
        !            48: .br
        !            49: .P
        !            50: When a program is being compiled, the compiler will
        !            51: automatically search the C language library 
        !            52: to locate and include functions that are used in the program.
        !            53: This is the case only for the C  library and no other library.
        !            54: In order for the compiler to locate and include functions from other libraries,
        !            55: the user must specify these libraries on the command line for the compiler.
        !            56: For example, when using functions of the math library, the user must request that the
        !            57: math library be searched by including the argument \fB-lm\fR on the command line, such as:
        !            58: .DS I
        !            59: cc file.c -lm
        !            60: .DE
        !            61: The argument \fB-lm\fR must come after all files that
        !            62: reference functions in the math library in order for
        !            63: the link editor to know which functions to include in
        !            64: the a.out file.
        !            65: .P 0
        !            66: This method should be used for all functions that are not part of the C language library.
        !            67: .H 3 "Including Declarations"
        !            68: .br
        !            69: .P
        !            70: Some functions require a set of declarations in order to operate properly.
        !            71: A set of declarations is stored in a file under the \fI/usr/include\fR
        !            72: directory.
        !            73: These files are referred to as \fIheader files\fR.
        !            74: In order to include a certain header file, the user must specify this request within the C language program.
        !            75: The request is in the form:
        !            76: .DS I
        !            77: #include <file.h>
        !            78: .DE
        !            79: .P 0
        !            80: where \fIfile.h\fR is the name of the file.
        !            81: Since the header files define the type of the functions and
        !            82: various preprocessor constants, they must be included
        !            83: before invoking the functions they declare.
        !            84: .P
        !            85: The remainder of this chapter describes the functions and
        !            86: header files of the C Library.
        !            87: The description of the library begins with the actions required by the user to include the functions
        !            88: and/or header files in a program being compiled (if any).
        !            89: Following the description of the actions required is information
        !            90: in three-column format of the form:
        !            91: .DS L
        !            92: \fBfunction\fR\^       \fBreference\fR\^(N)            Brief description.
        !            93: .SP
        !            94: .DE
        !            95: .P 0
        !            96: The functions are grouped by type while the
        !            97: reference refers to section `N' in the
        !            98: .I "UNIX System Programmer Reference Manual" .
        !            99: Following this, are descriptions of the header files associated with these
        !           100: functions (if any).
        !           101: .H 2 "THE C LIBRARY"
        !           102: .P
        !           103: The C library  consists of several types of functions.
        !           104: All the functions of the C library are loaded automatically by the compiler.
        !           105: Various declarations must sometimes be included by the user as required.
        !           106: The functions of the C library are divided into the following types:
        !           107: .BL 6 1
        !           108: .LI
        !           109: Input/output control
        !           110: .LI
        !           111: String manipulation
        !           112: .LI
        !           113: Character manipulation
        !           114: .LI
        !           115: Time functions
        !           116: .LI
        !           117: Miscellaneous functions.
        !           118: .LE
        !           119: .H 3 "Input/Output Control"
        !           120: .br
        !           121: .P
        !           122: These functions of the C library
        !           123: are automatically included as needed
        !           124: during the compiling of
        !           125: a C language program.
        !           126: No command line request is needed.
        !           127: .P
        !           128: The
        !           129: header file required by the input/output functions should be included in the
        !           130: program being compiled.
        !           131: This is accomplished by including the line:
        !           132: .DS I
        !           133: #include <stdio.h>\fR
        !           134: .DE
        !           135: .P 0
        !           136: near the beginning of each file that references
        !           137: an input or output function.
        !           138: .P
        !           139: The input/output functions are grouped into the following
        !           140: categories:
        !           141: .BL 6 1
        !           142: .LI
        !           143: File access
        !           144: .LI
        !           145: File status
        !           146: .LI
        !           147: Input
        !           148: .LI
        !           149: Output
        !           150: .LI
        !           151: Miscellaneous.
        !           152: .LE
        !           153: .H 3 "File Access Functions"
        !           154: .br
        !           155: .P 0
        !           156: .TS
        !           157: expand;
        !           158: lll
        !           159: lll.
        !           160: .if n .ft B
        !           161: .if t .ft BI
        !           162: .SP 2
        !           163: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           164: .ft R
        !           165: .SP
        !           166: \fBfclose\fR\^ \fBfclose\fR\^(3S)      Close an open stream.
        !           167: .SP
        !           168: \fBfdopen\fR\^ \fBfopen\fR\^(3S)       Associate stream with
        !           169:                an \fBopen\fR(2) ed file.
        !           170: .SP
        !           171: \fBfileno\fR\^ \fBferror\fR\^(3S)      File descriptor associated
        !           172:                with an open stream.
        !           173: .SP
        !           174: \fBfopen\fR\^  \fBfopen\fR\^(3S)       Open a file with
        !           175:                specified permissions. 
        !           176:                \fBFopen\fR returns a pointer
        !           177:                to a stream which is
        !           178:                used in subsequent
        !           179:                references to the file.
        !           180: .SP
        !           181: \fBfreopen\fR\^        \fBfopen\fR\^(3S)       Substitute named file
        !           182:                in place of open
        !           183:                stream.
        !           184: .SP
        !           185: \fBfseek\fR\^  \fBfseek\fR\^(3S)       Reposition the file
        !           186:                pointer.
        !           187: .SP
        !           188: \fBpclose\fR\^ \fBpopen\fR\^(3S)       Close a stream opened
        !           189:                by \fBpopen\fR.
        !           190: .SP
        !           191: \fBpopen\fR\^  \fBpopen\fR\^(3S)       Create pipe as a stream
        !           192:                between calling process 
        !           193:                and command.
        !           194: .SP
        !           195: \fBrewind\fR\^ \fBfseek\fR\^(3S)       Reposition file
        !           196:                pointer at beginning
        !           197:                of file.
        !           198: .SP
        !           199: \fBsetbuf\fR\^ \fBsetbuf\fR\^(3S)      Assign buffering to
        !           200:                stream.
        !           201: .SP
        !           202: \fBvsetbuf     setbuf\fR(3S)   Similar to \fBsetbuf\fR, but
        !           203:                allowing finer control.
        !           204: .TE
        !           205: .H 3 "File Status Functions"
        !           206: .br
        !           207: .P 0
        !           208: .TS
        !           209: expand;
        !           210: lll
        !           211: lll.
        !           212: .if n .ft B
        !           213: .if t .ft BI
        !           214: .SP 2
        !           215: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           216: .ft R
        !           217: .SP 
        !           218: \fBclearerr\fR\^       \fBferror\fR\^(3S)      Reset error condition on
        !           219:                stream.
        !           220: .SP
        !           221: \fBfeof\fB     \fBferror\fR(3S)        Test for ``end of file''
        !           222:                on stream.
        !           223: .SP
        !           224: \fBferror\fR\^ \fBferror\fR\^(3S)      Test for error condition
        !           225:                on stream.
        !           226: .SP
        !           227: \fBftell\fR\^  \fBfseek\fR\^(3S)       Return current position
        !           228:                in the file.
        !           229: .TE
        !           230: .H 3 "Input Functions"
        !           231: .br
        !           232: .P 0
        !           233: .TS
        !           234: expand;
        !           235: lll
        !           236: lll.
        !           237: .if n .ft B
        !           238: .if t .ft BI
        !           239: .SP 2
        !           240: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           241: .ft R
        !           242: .SP
        !           243: \fBfgetc\fR\^  \fBgetc\fR\^(3S)        True function for \fBgetc\fR\^
        !           244:                (3S).
        !           245: .SP
        !           246: \fBfgets\fR\^  \fBgets\fR\^(3S)        Read string from stream.
        !           247: .SP
        !           248: \fBfread\fR\^  \fBfread\fR\^(3S)       General buffered read
        !           249:                from stream.
        !           250: .SP
        !           251: \fBfscanf\fR\^ \fBscanf\fR\^(3S)       Formatted read from
        !           252:                stream.
        !           253: .SP
        !           254: \fBgetc\fR\^   \fBgetc\fR\^(3S)        Read character from
        !           255:                stream.
        !           256: .SP
        !           257: \fBgetchar\fR\^        \fBgetc\fR\^(3S)        Read character from
        !           258:                standard input.
        !           259: .SP
        !           260: \fBgets\fR\^   \fBgets\fR\^(3S)        Read string from standard input.
        !           261: .SP
        !           262: \fBgetw\fR\^   \fBgetc\fR\^(3S)        Read word from stream.
        !           263: .SP
        !           264: \fBscanf\fR\^  \fBscanf\fR\^(3S)       Read using format from
        !           265:                standard input.
        !           266: .SP
        !           267: \fBsscanf\fR\^ \fBscanf\fR\^(3S)       Formatted from
        !           268:                string.
        !           269: .SP
        !           270: \fBungetc\fR\^ \fBungetc\fR\^(3S)      Put back one character on
        !           271:                stream.
        !           272: .TE
        !           273: .H 3 "Output Functions"
        !           274: .br
        !           275: .P 0
        !           276: .TS
        !           277: expand;
        !           278: lll
        !           279: lll.
        !           280: .if n .ft B
        !           281: .if t .ft BI
        !           282: .SP 2
        !           283: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           284: .ft R
        !           285: .SP
        !           286: \fBfflush\fR\^ \fBfclose\fR\^(3S)      Write all currently buffered
        !           287:                characters from stream.
        !           288: .SP
        !           289: \fBfprintf\fR\^        \fBprintf\fR\^(3S)      Formatted write to
        !           290:                stream.
        !           291: .SP
        !           292: \fBfputc\fR\^  \fBputc\fR\^(3S)        True function for \fBputc\fR\^
        !           293:                (3S).
        !           294: .SP
        !           295: \fBfputs\fR\^  \fBputs\fR\^(3S)        Write string to stream.
        !           296: .SP
        !           297: \fBfwrite\fR\^ \fBfread\fR\^(3S)       General buffered write to 
        !           298:                stream.
        !           299: .SP
        !           300: \fBprintf\fR\^ \fBprintf\fR\^(3S)      Print using format to
        !           301:                standard output.
        !           302: .SP
        !           303: \fBputc\fR\^   \fBputc\fR\^(3S)        Write character to
        !           304:                standard output.
        !           305: .SP
        !           306: \fBputchar\fR\^        \fBputc\fR\^(3S)        Write character to
        !           307:                standard output.
        !           308: .SP
        !           309: \fBputs\fR\^   \fBputs\fR\^(3S)        Write string to
        !           310:                standard output.
        !           311: .SP
        !           312: \fBputw\fR\^   \fBputc\fR\^(3S)        Write word to stream.
        !           313: .SP
        !           314: \fBsprintf\fR\^        \fBprintf\fR\^(3S)      Formatted write to
        !           315:                string.
        !           316: .SP
        !           317: \fBvfprintf    vprint\fR(3C)   Print using format to
        !           318:                stream by \fBvarargs\fR(5)
        !           319:                argument list.
        !           320: .SP
        !           321: \fBvprintf     vprint\fR(3C)   Print using format to
        !           322:                standard output by
        !           323:                \fBvarargs\fR(5) argument list.
        !           324: .SP
        !           325: \fBvsprintf    vprintf\fR(3C)  Print using format to
        !           326:                stream string by
        !           327:                \fBvarargs\fR(5) argument list.
        !           328: .TE
        !           329: .H 3 "Miscellaneous Functions"
        !           330: .br
        !           331: .P 0
        !           332: .TS
        !           333: expand;
        !           334: lll
        !           335: lll.
        !           336: .if n .ft B
        !           337: .if t .ft BI
        !           338: .SP 2
        !           339: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           340: .ft R
        !           341: .SP
        !           342: \fBctermid\fR\^        \fBctermid\fR\^(3S)     Return file name for 
        !           343:                controlling terminal.
        !           344: .SP
        !           345: \fBcuserid\fR\^        \fBcuserid\fR\^(3S)     Return login name for
        !           346:                owner of current process.
        !           347: .SP
        !           348: \fBsystem\fR\^ \fBsystem\fR\^(3S)      Execute shell command.
        !           349: .SP
        !           350: \fBtempnam\fR\^        \fBtempnam\fR\^(3S)     Create temporary file
        !           351:                name using directory and
        !           352:                prefix.
        !           353: .SP
        !           354: \fBtmpnam\fR\^ \fBtmpnam\fR\^(3S)      Create temporary file
        !           355:                name.
        !           356: .SP
        !           357: \fBtmpfile\fR\^        \fBtmpfile\fR\^(3S)     Create temporary file.
        !           358: .TE
        !           359: .H 3 "String Manipulation Functions"
        !           360: .br
        !           361: .P
        !           362: These functions are
        !           363: used to locate characters within a string, copy,
        !           364: concatenate, and compare strings.
        !           365: These functions are automatically located and loaded during the compiling of
        !           366: a C language program.
        !           367: No command line request is needed
        !           368: since these functions are part of the C library.
        !           369: The string manipulation functions are declared in a header file that
        !           370: may be included in the program being compiled.
        !           371: This is accomplished by including the line:
        !           372: .DS I
        !           373: #include <string.h>
        !           374: .DE
        !           375: near the beginning of each file that uses one
        !           376: of these functions.
        !           377: .sp 
        !           378: .P 0
        !           379: .TS
        !           380: expand;
        !           381: lll
        !           382: lll.
        !           383: .if n .ft B
        !           384: .if t .ft BI
        !           385: .SP 2
        !           386: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           387: .ft R
        !           388: .SP
        !           389: \fBstrcat\fR\^ \fBstring\fR\^(3C)      Concatenate two strings.
        !           390: .SP
        !           391: \fBstrchr\fR\^ \fBstring\fR\^(3C)      Search string for
        !           392:                character.
        !           393: .SP
        !           394: \fBstrcmp\fR\^ \fBstring\fR\^(3C)      Compares two strings.
        !           395: .SP
        !           396: \fBstrcpy\fR\^ \fBstring\fR\^(3C)      Copy string.
        !           397: .SP
        !           398: \fBstrcspn\fR\^        \fBstring\fR\^(3C)      Length of initial string
        !           399:                not containing set of 
        !           400:                characters.
        !           401: .SP
        !           402: \fBstrlen\fR\^ \fBstring\fR\^(3C)      Length of string.
        !           403: .SP
        !           404: \fBstrncat\fR\^        \fBstring\fR\^(3C)      Concatenate two strings
        !           405:                with a maximum length.
        !           406: .SP
        !           407: \fBstrncmp\fR\^        \fBstring\fR\^(3C)      Compares two strings
        !           408:                with a maximum length.
        !           409: .SP
        !           410: \fBstrncpy\fR\^        \fBstring\fR\^(3C)      Copy string over string
        !           411:                with a maximum length.
        !           412: .SP
        !           413: \fBstrpbrk\fR\^        \fBstring\fR\^(3C)      Search string for any
        !           414:                set of characters.
        !           415: .SP
        !           416: \fBstrrchr\fR\^        \fBstring\fR\^(3C)      Search string backwards
        !           417:                for character.
        !           418: .SP
        !           419: \fBstrspn\fR\^ \fBstring\fR\^(3C)      Length of initial string
        !           420:                containing set of
        !           421:                characters.
        !           422: .SP
        !           423: \fBstrtok\fR\^ \fBstring\fR\^(3C)      Search string for token
        !           424:                separated by any of a
        !           425:                set of characters.
        !           426: .TE
        !           427: .H 3 "Character Manipulation"
        !           428: .br
        !           429: .P
        !           430: The following functions and declarations are used for
        !           431: testing and translating ASCII characters.
        !           432: These functions are located and loaded automatically during the compiling of
        !           433: a C language program.
        !           434: No command line request is needed
        !           435: since these functions are part of the C library.
        !           436: .P
        !           437: The declarations associated with these functions should be included in the
        !           438: program being compiled.
        !           439: This is accomplished by including the line:
        !           440: .DS I
        !           441: #include <ctype.h>
        !           442: .DE
        !           443: .P 0
        !           444: near the beginning of the file being compiled.
        !           445: .H 3 "Character Testing Functions"
        !           446: .br
        !           447: .P
        !           448: These functions can be used to identify characters as uppercase or
        !           449: lowercase letters, digits, punctuation, etc.
        !           450: .P 0
        !           451: .TS
        !           452: expand;
        !           453: lll
        !           454: lll.
        !           455: .if n .ft B
        !           456: .if t .ft BI
        !           457: .SP 2
        !           458: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           459: .ft R
        !           460: .SP
        !           461: \fBisalnum\fR\^        \fBctype\fR\^(3C)       Is character
        !           462:                alphanumeric?
        !           463: .SP
        !           464: \fBisalpha\fR\^        \fBctype\fR\^(3C)       Is character alphabetic?
        !           465: .SP
        !           466: \fBisascii\fR\^        \fBctype\fR\^(3C)       Is integer ASCII
        !           467:                character?
        !           468: .SP
        !           469: \fBiscntrl\fR\^        \fBctype\fR\^(3C)       Is character a control
        !           470:                character?
        !           471: .SP
        !           472: \fBisdigit\fR\^        \fBctype\fR\^(3C)       Is character a digit?
        !           473: .SP
        !           474: \fBisgraph\fR\^        \fBctype\fR\^(3C)       Is character a printable
        !           475:                character?
        !           476: .SP
        !           477: \fBislower\fR\^        \fBctype\fR\^(3C)       Is character a
        !           478:                lowercase letter?
        !           479: .SP
        !           480: \fBisprint\fR\^        \fBctype\fR\^(3C)       Is character a printing
        !           481:                character including
        !           482:                space?
        !           483: .SP
        !           484: \fBispunct\fR\^        \fBctype\fR\^(3C)       Is character a
        !           485:                punctuation character?
        !           486: .SP
        !           487: \fBisspace\fR\^        \fBctype\fR\^(3C)       Is character a white
        !           488:                space character?
        !           489: .SP
        !           490: \fBisupper\fR\^        \fBctype\fR\^(3C)       Is character an uppercase
        !           491:                letter?
        !           492: .SP
        !           493: \fBisxdigit\fR\^       \fBctype\fR\^(3C)       Is character a hex digit?
        !           494: .TE
        !           495: .H 3 "Character Translation Functions"
        !           496: .br
        !           497: .P
        !           498: These functions provide
        !           499: translation of uppercase to lowercase, lowercase to uppercase,
        !           500: and integer to ASCII.
        !           501: .P 0
        !           502: .TS
        !           503: expand;
        !           504: lll
        !           505: lll.
        !           506: .if n .ft B
        !           507: .if t .ft BI
        !           508: .SP 2
        !           509: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           510: .ft R
        !           511: .SP
        !           512: \fBtoascii\fR\^        \fBconv\fR\^(3C)        Convert integer to
        !           513:                ASCII character.
        !           514: .SP
        !           515: \fBtolower\fR\^        \fBconv\fR\^(3C)        Convert character to 
        !           516:                lowercase.
        !           517: .SP
        !           518: \fBtoupper\fR\^        \fBconv\fR\^(3C)        Convert character to 
        !           519:                uppercase.
        !           520: .TE
        !           521: .H 3 "Time Functions"
        !           522: .br
        !           523: .P
        !           524: These functions  are used for
        !           525: accessing
        !           526: and reformatting the systems idea of the current date and time.
        !           527: These functions are located and loaded automatically during the compiling of
        !           528: a C language program.
        !           529: No command line request is needed
        !           530: since these functions are part of the C library.
        !           531: .P
        !           532: The header file associated with these functions should be included in the
        !           533: program being compiled.
        !           534: This is accomplished by including the line:
        !           535: .DS I
        !           536: .ne 4
        !           537: #include <time.h>
        !           538: .DE
        !           539: .P 0
        !           540: near the beginning of any file using the time functions.
        !           541: .P
        !           542: These functions (except \fBtzset\fR) convert a time such as returned
        !           543: by \fBtime\fR(2).
        !           544: .ne 6
        !           545: .P 0 
        !           546: .TS
        !           547: expand;
        !           548: lll
        !           549: lll.
        !           550: .if n .ft B
        !           551: .if t .ft BI
        !           552: .SP 2
        !           553: .ne 4
        !           554: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           555: .ft R
        !           556: .SP
        !           557: .ne 4
        !           558: \fBasctime\fR\^        \fBctime\fR\^(3C)       Return string
        !           559:                representation
        !           560:                of date and time.
        !           561: .SP
        !           562: .ne 4
        !           563: \fBctime\fR\^  \fBctime\fR\^(3C)       Return string
        !           564:                representation of
        !           565:                date and time, given
        !           566:                integer form.
        !           567: .SP
        !           568: .ne 4
        !           569: \fBgmtime\fR\^ \fBctime\fR\^(3C)       Return Greenwich
        !           570:                Mean Time.
        !           571: .SP
        !           572: .ne 4
        !           573: \fBlocaltime\fR\^      \fBctime\fR\^(3C)       Return local time.
        !           574: .SP
        !           575: .ne 4
        !           576: \fBtzset\fR\^  \fBctime\fR\^(3C)       Set time zone field
        !           577:                from environment
        !           578:                variable.
        !           579: .TE
        !           580: .P 0
        !           581: .H 3 "Miscellaneous Functions"
        !           582: .br
        !           583: .P
        !           584: These functions support a wide variety of operations.
        !           585: Some of these are numerical conversion, password file and group file access,
        !           586: memory allocation, random number generation, and table management.
        !           587: These functions are automatically located and included in a program being compiled.
        !           588: No command line request is needed since these functions are part of the C library.
        !           589: .P
        !           590: Some of these functions require declarations to be included.
        !           591: These are described following the descriptions of the functions.
        !           592: .H 3 "Numerical Conversion"
        !           593: .br
        !           594: .P
        !           595: The following functions perform numerical conversion.
        !           596: .P 0 
        !           597: .TS
        !           598: expand;
        !           599: lll
        !           600: lll.
        !           601: .if n .ft B
        !           602: .if t .ft BI
        !           603: .SP 2
        !           604: .ne 4
        !           605: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           606: .ft R
        !           607: .SP
        !           608: .ne 4
        !           609: \fBa64l\fR\^   \fBa64l\fR\^(3C)        Convert string to
        !           610:                base 64 ASCII.
        !           611: .SP
        !           612: .ne 4
        !           613: \fBatof\fR\^   \fBatof\fR\^(3C)        Convert string to
        !           614:                floating.
        !           615: .SP
        !           616: .ne 4
        !           617: \fBatoi\fR\^   \fBatof\fR\^(3C)        Convert string to
        !           618:                integer.
        !           619: .SP
        !           620: .ne 4
        !           621: \fBatol\fR\^   \fBatof\fR\^(3C)        Convert string to long.
        !           622: .SP
        !           623: .ne 4
        !           624: \fBfrexp\fR\^  \fBfrexp\fR\^(3C)       Split floating into
        !           625:                mantissa and exponent.
        !           626: .SP
        !           627: .ne 4
        !           628: \fBl3tol\fR\^  \fBl3tol\fR\^(3C)       Convert 3-byte integer
        !           629:                to long.
        !           630: .SP
        !           631: .ne 4
        !           632: \fBltol3\fR\^  \fBl3tol\fR\^(3C)       Convert long to 3-byte
        !           633:                integer.
        !           634: .SP
        !           635: .ne 4
        !           636: \fBldexp\fR\^  \fBfrexp\fR\^(3C)       Combine mantissa and
        !           637:                exponent.
        !           638: .SP
        !           639: .ne 4
        !           640: \fBl64a\fR\^   \fBa64l\fR\^(3C)        Convert base 64 ASCII
        !           641:                to string.
        !           642: .SP
        !           643: .ne 4
        !           644: \fBmodf\fR\^   \fBfrexp\fR\^(3C)       Split mantissa into
        !           645:                integer and fraction.
        !           646: .TE
        !           647: .H 3 "DES Algorithm Access"
        !           648: .br
        !           649: .P
        !           650: The following functions allow access to the Data Encryption Standard (DES) algorithm 
        !           651: used on the UNIX operating system.
        !           652: The DES algorithm is implemented with variations to frustrate use of
        !           653: hardware implementations of the DES for key search.
        !           654: .P 0 
        !           655: .TS
        !           656: expand;
        !           657: lll
        !           658: lll.
        !           659: .if n .ft B
        !           660: .if t .ft BI
        !           661: .SP 2
        !           662: .ne 4
        !           663: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           664: .ft R
        !           665: .SP
        !           666: .ne 4
        !           667: \fBcrypt\fR\^  \fBcrypt\fR\^(3C)       Encode string.
        !           668: .SP
        !           669: .ne 4
        !           670: \fBencrypt\fR\^        \fBcrypt\fR\^(3C)       Encode/decode string of
        !           671:                0s and 1s.
        !           672: .SP
        !           673: .ne 4
        !           674: \fBsetkey\fR\^ \fBcrypt\fR\^(3C)       Initialize for subsequent
        !           675:                use of \fBencrypt\fR.
        !           676: .TE
        !           677: .H 3 "Group File Access"
        !           678: .br
        !           679: .P
        !           680: The following functions are used to obtain entries from the group file.
        !           681: Declarations for these functions must be included in the program being
        !           682: compiled with the line:
        !           683: .DS I
        !           684: #include <grp.h>
        !           685: .DE
        !           686: .P 0
        !           687: .P 0 
        !           688: .TS
        !           689: expand;
        !           690: lll
        !           691: lll.
        !           692: .if n .ft B
        !           693: .if t .ft BI
        !           694: .SP 2
        !           695: .ne 4
        !           696: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           697: .ft R
        !           698: .SP
        !           699: .ne 4
        !           700: \fBendgrent\fR\^       \fBgetgrent\fR\^(3C)    Close group file being
        !           701:                processed.
        !           702: .SP
        !           703: .ne 4
        !           704: \fBgetgrent\fR\^       \fBgetgrent\fR\^(3C)    Get next group file
        !           705:                entry.
        !           706: .SP
        !           707: .ne 4
        !           708: \fBgetgrgid\fR\^       \fBgetgrent\fR\^(3C)    Return next group with
        !           709:                matching gid.
        !           710: .SP
        !           711: .ne 4
        !           712: \fBgetgrnam\fR\^       \fBgetgrent\fR\^(3C)    Return next group with
        !           713:                matching name.
        !           714: .SP
        !           715: .ne 4
        !           716: \fBsetgrent\fR\^       \fBgetgrent\fR\^(3C)    Rewind group file being
        !           717:                processed.
        !           718: .SP
        !           719: .ne 4
        !           720: \fBfgetgrent   getgrent\fR(3C) Get next group file entry
        !           721:                from a specified file.
        !           722: .TE
        !           723: .H 3 "Password File Access"
        !           724: .br
        !           725: .P
        !           726: These functions are used to search and access information stored in the
        !           727: password file (/etc/passwd).
        !           728: Some functions require declarations that can be included in the program
        !           729: being compiled by adding the line:
        !           730: .DS I
        !           731: #include <pwd.h>
        !           732: .DE
        !           733: .P 0
        !           734: .P 0 
        !           735: .TS
        !           736: expand;
        !           737: lll
        !           738: lll.
        !           739: .if n .ft B
        !           740: .if t .ft BI
        !           741: .SP 2
        !           742: .ne 4
        !           743: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           744: .ft R
        !           745: .SP
        !           746: .ne 4
        !           747: \fBendpwent\fR\^       \fBgetpwent\fR\^(3C)    Close password file
        !           748:                being processed.
        !           749: .SP
        !           750: .ne 4
        !           751: \fBgetpw\fR\^  \fBgetpw\fR\^(3C)       Search password file
        !           752:                for uid.
        !           753: .SP
        !           754: .ne 4
        !           755: \fBgetpwent\fR\^       \fBgetpwent\fR\^(3C)    Get next password file
        !           756:                entry.
        !           757: .SP
        !           758: .ne 4
        !           759: \fBgetpwnam\fR\^       \fBgetpwent\fR\^(3C)    Return next entry with
        !           760:                matching name.
        !           761: .SP
        !           762: .ne 4
        !           763: \fBgetpwuid\fR\^       \fBgetpwent\fR\^(3C)    Return next entry with
        !           764:                matching uid.
        !           765: .SP
        !           766: .ne 4
        !           767: \fBputpwent\fR\^       \fBputpwent\fR\^(3C)    Write entry on stream.
        !           768: .SP
        !           769: .ne 4
        !           770: \fBsetpwent\fR\^       \fBgetpwent\fR\^(3C)    Rewind password file
        !           771:                being accessed.
        !           772: .SP
        !           773: .ne 4
        !           774: .ne 3
        !           775: \fBfgetpwent   getpwent\fR(3C) Get next password file
        !           776:                entry from a specified
        !           777:                file.
        !           778: .TE
        !           779: .H 3 "Parameter Access"
        !           780: .br
        !           781: .P
        !           782: The following functions provide access to several different types of
        !           783: paramenters.
        !           784: None require any declarations.
        !           785: .P 0 
        !           786: .TS
        !           787: expand;
        !           788: lll
        !           789: lll.
        !           790: .if n .ft B
        !           791: .if t .ft BI
        !           792: .SP 2
        !           793: .ne 4
        !           794: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           795: .ft R
        !           796: .SP
        !           797: .ne 4
        !           798: \fBgetopt\fR\^ \fBgetopt\fR\^(3C)      Get next option from
        !           799:                option list.
        !           800: .SP
        !           801: .ne 4
        !           802: \fBgetcwd\fR\^ \fBgetcwd\fR\^(3C)      Return string
        !           803:                representation of
        !           804:                current working directory.
        !           805: .SP
        !           806: .ne 4
        !           807: \fBgetenv\fR\^ \fBgetenv\fR\^(3C)      Return string value
        !           808:                associated with
        !           809:                environment variable.
        !           810: .SP
        !           811: .ne 4
        !           812: \fBgetpass\fR\^        \fBgetpass\fR\^(3C)     Read string from terminal
        !           813:                without echoing.
        !           814: .SP
        !           815: .ne 4
        !           816: \fBputenv      putenv\fR(3C)   Change or add value
        !           817:                of an environment
        !           818:                variable.
        !           819: .TE
        !           820: .H 3 "Hash Table Management"
        !           821: .br
        !           822: .P
        !           823: The following functions are used to manage hash search tables.
        !           824: The header file associated with these functions should be included
        !           825: in the program being compiled.
        !           826: This is accomplished by including the line:
        !           827: .DS I
        !           828: #include <search.h>
        !           829: .DE
        !           830: near the beginning of any file using the search functions.
        !           831: .P 0 
        !           832: .TS
        !           833: expand;
        !           834: lll
        !           835: lll.
        !           836: .if n .ft B
        !           837: .if t .ft BI
        !           838: .SP 2
        !           839: .ne 4
        !           840: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           841: .ft R
        !           842: .SP
        !           843: .ne 4
        !           844: \fBhcreate\fR\^        \fBhsearch\fR\^(3C)     Create hash table.
        !           845: .SP
        !           846: .ne 4
        !           847: \fBhdestroy\fR\^       \fBhsearch\fR\^(3C)     Destroy hash table.
        !           848: .SP
        !           849: .ne 4
        !           850: \fBhsearch\fR\^        \fBhsearch\fR\^(3C)     Search hash table for
        !           851:                entry.
        !           852: .TE
        !           853: .H 3 "Binary Tree Management"
        !           854: .br
        !           855: .P
        !           856: The following functions are used to manage a binary tree.
        !           857: The header file associated with these functions should be included
        !           858: in the program being compiled.
        !           859: This is accomplished by including the line:
        !           860: .DS I
        !           861: #include <search.h>
        !           862: .DE
        !           863: near the beginning of any file using the search functions.
        !           864: .P 0 
        !           865: .TS
        !           866: expand;
        !           867: lll
        !           868: lll.
        !           869: .if n .ft B
        !           870: .if t .ft BI
        !           871: .SP 2
        !           872: .ne 4
        !           873: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           874: .ft R
        !           875: .SP
        !           876: .ne 4
        !           877: \fBtdelete\fR\^        \fBtsearch\fR\^(3C)     Deletes nodes from
        !           878:                binary tree.
        !           879: .SP
        !           880: .ne 4
        !           881: \fBtfind       tsearch\fR(3C)  Find element in
        !           882:                binary tree.
        !           883: .SP
        !           884: .ne 4
        !           885: \fBtsearch\fR\^        \fBtsearch\fR\^(3C)     Look for and add
        !           886:                element to binary
        !           887:                tree.
        !           888: .SP
        !           889: .ne 4
        !           890: \fBtwalk\fR\^  \fBtsearch\fR\^(3C)     Walk binary tree.
        !           891: .TE
        !           892: .H 3 "Table Management"
        !           893: .br
        !           894: .P
        !           895: The following functions are used to manage a table.
        !           896: Since none of these functions allocate storage, sufficient
        !           897: memory must be allocated before using these functions.
        !           898: The header file associated with these functions should be included
        !           899: in the program being compiled.
        !           900: This is accomplished by including the line:
        !           901: .DS I
        !           902: #include <search.h>
        !           903: .DE
        !           904: near the beginning of any file using the search functions.
        !           905: .P 0 
        !           906: .TS
        !           907: expand;
        !           908: lll
        !           909: lll.
        !           910: .if n .ft B
        !           911: .if t .ft BI
        !           912: .SP 2
        !           913: .ne 4
        !           914: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           915: .ft R
        !           916: .SP
        !           917: .ne 4
        !           918: \fBbsearch\fR\^        \fBbsearch\fR\^(3C)     Search table using
        !           919:                binary search.
        !           920: .SP
        !           921: .ne 4
        !           922: \fBlfind       lsearch\fR(3C)  Find element in
        !           923:                library tree.
        !           924: .SP
        !           925: .ne 4
        !           926: \fBlsearch\fR\^        \fBlsearch\fR\^(3C)     Look for and add
        !           927:                element in binary
        !           928:                tree.
        !           929: .SP
        !           930: .ne 4
        !           931: \fBqsort\fR\^  \fBqsort\fR\^(3C)       Sort table using
        !           932:                quick-sort algorithm.
        !           933: .TE
        !           934: .H 3 "Memory Allocation"
        !           935: .br
        !           936: .P
        !           937: The following functions provide a means by which memory can be
        !           938: dynamically allocated or freed.
        !           939: .P 0 
        !           940: .TS
        !           941: expand;
        !           942: lll
        !           943: lll.
        !           944: .if n .ft B
        !           945: .if t .ft BI
        !           946: .SP 2
        !           947: .ne 4
        !           948: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           949: .ft R
        !           950: .SP
        !           951: .ne 4
        !           952: \fBcalloc\fR\^ \fBmalloc\fR\^(3C)      Allocate zeroed storage.
        !           953: .SP
        !           954: .ne 4
        !           955: \fBfree\fR\^   \fBmalloc\fR\^(3C)      Free previously allocated
        !           956:                storage.
        !           957: .SP
        !           958: .ne 4
        !           959: \fBmalloc\fR\^ \fBmalloc\fR\^(3C)      Allocate storage.
        !           960: .SP
        !           961: .ne 4
        !           962: \fBrealloc\fR\^        \fBmalloc\fR\^(3C)      Change size of allocated
        !           963:                storage.
        !           964: .TE
        !           965: The following is another set of memory allocation functions
        !           966: available.
        !           967: .P 0 
        !           968: .TS
        !           969: expand;
        !           970: lll
        !           971: lll.
        !           972: .if n .ft B
        !           973: .if t .ft BI
        !           974: .SP 2
        !           975: .ne 4
        !           976: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !           977: .ft R
        !           978: .SP
        !           979: .ne 4
        !           980: \fBcalloc      malloc\fR(3X)   Allocate zeroed storage.
        !           981: .SP
        !           982: .ne 4
        !           983: \fBfree        malloc\fR(3X)   Free previously allocated
        !           984:                storage.
        !           985: .SP
        !           986: .ne 4
        !           987: \fBmalloc      malloc\fR(3X)   Allocate storage.
        !           988: .SP
        !           989: .ne 4
        !           990: \fBmallopt     malloc\fR(3X)   Control allocation
        !           991:                algorithm.
        !           992: .SP
        !           993: .ne 4
        !           994: \fBmallinfo    malloc\fR(3X)   Space usage.
        !           995: .SP
        !           996: .ne 4
        !           997: \fBrealoc      malloc\fR(3X)   Change size of
        !           998:                allocated storage.
        !           999: .TE
        !          1000: .H 3 "Pseudorandom Number Generation"
        !          1001: .br
        !          1002: .P
        !          1003: The following functions are used to generate pseudorandom numbers.
        !          1004: The functions that end with \fB48\fR are a family of interfaces to
        !          1005: a pseudorandom number generator based upon the linear congruent
        !          1006: algorithm and 48-bit integer arithmetic.
        !          1007: The \fBrand\fR\^ and \fBsrand\fR\^ functions provide an interface to
        !          1008: a multiplicative congruential random number generator with period of
        !          1009: 232.
        !          1010: .P 0 
        !          1011: .TS
        !          1012: expand;
        !          1013: lll
        !          1014: lll.
        !          1015: .if n .ft B
        !          1016: .if t .ft BI
        !          1017: .SP 2
        !          1018: .ne 4
        !          1019: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !          1020: .ft R
        !          1021: .SP
        !          1022: .ne 4
        !          1023: \fBdrand48\fR\^        \fBdrand48\fR\^(3C)     Random double over
        !          1024:                the interval [0 to 1).
        !          1025: .SP
        !          1026: .ne 4
        !          1027: \fBlcong48\fR\^        \fBdrand48\fR\^(3C)     Set parameters for
        !          1028:                \fBdrand48\fR\^, \fBlrand48\fR\^,
        !          1029:                and \fBmrand48\fR.
        !          1030: .SP
        !          1031: .ne 4
        !          1032: \fBlrand48\fR\^        \fBdrand48\fR\^(3C)     Random long over the
        !          1033:                interval [0 to 2\v'-0.3'31\v'0.3').
        !          1034: .SP
        !          1035: .ne 4
        !          1036: \fBmrand48\fR\^        \fBdrand48\fR\^(3C)     Random long over the
        !          1037:                interval [-2\v'-0.3'31\v'0.3' to 2\v'-0.3'31\v'0.3').
        !          1038: .SP
        !          1039: .ne 4
        !          1040: \fBrand\fR\^   \fBrand\fR\^(3C)        Random integer over the
        !          1041:                interval [0 to 32767).
        !          1042: .SP
        !          1043: .ne 4
        !          1044: \fBseed48\fR\^ \fBdrand48\fR\^(3C)     Seed the generator for
        !          1045:                \fBdrand48\fR\^, \fBlrand48\fR\^, and
        !          1046:                \fBmrand48\fR.
        !          1047: .SP
        !          1048: .ne 4
        !          1049: \fBsrand\fR\^  \fBrand\fR\^(3C)        Seed the generator 
        !          1050:                for \fBrand\fR.
        !          1051: .SP
        !          1052: .ne 4
        !          1053: \fBsrand48\fR\^        \fBdrand48\fR\^(3C)     Seed the generator for
        !          1054:                \fBdrand48\fR\^, \fBlrand48\fR\^, and
        !          1055:                \fBmrand48\fR using a long.
        !          1056: .SP
        !          1057: .ne 4
        !          1058: .TE
        !          1059: .sp
        !          1060: .sp
        !          1061: .sp
        !          1062: .sp
        !          1063: .tr ~
        !          1064: .sp
        !          1065: .H 3 "Signal Handling Functions"
        !          1066: .br
        !          1067: .P
        !          1068: The functions \fBgsignal\fR\^ and \fBssignal\fR\^ implement a software
        !          1069: facility similar to \fBsignal\fR(2) in the
        !          1070: .I "UNIX System Programmer Reference Manual" .
        !          1071: This facility enables users to indicate the disposition of error
        !          1072: conditions and allows users to handle signals for their own purposes.
        !          1073: The declarations associated with these functions can be included in the
        !          1074: program being complied by the line
        !          1075: .DS I
        !          1076: #include <signal.h>
        !          1077: .DE
        !          1078: .P 0
        !          1079: These declarations define ASCII names for the 15 software signals.
        !          1080: .P 0
        !          1081: .TS
        !          1082: expand;
        !          1083: lll
        !          1084: lll.
        !          1085: .SP 2
        !          1086: .ne 4
        !          1087: .if n .ft B
        !          1088: .if t .ft BI
        !          1089: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !          1090: .ft R
        !          1091: .SP
        !          1092: .ne 4
        !          1093: \fBgsignal\fR\^        \fBssignal\fR\^(3C)     Send a software signal.
        !          1094: .SP
        !          1095: .ne 4
        !          1096: \fBssignal\fR\^        \fBssignal\fR\^(3C)     Arrange for handling
        !          1097:                of software signals.
        !          1098: .TE
        !          1099: .H 3 "Miscellaneous"
        !          1100: .br
        !          1101: .P
        !          1102: The following functions do not fall into any previously described
        !          1103: category.
        !          1104: .P 0
        !          1105: .TS
        !          1106: expand;
        !          1107: lll
        !          1108: lll.
        !          1109: .SP 2
        !          1110: .ne 4
        !          1111: .if n .ft B
        !          1112: .if t .ft BI
        !          1113: FUNCTION       REFERENCE       BRIEF DESCRIPTION
        !          1114: .ft R
        !          1115: .SP
        !          1116: .ne 4
        !          1117: \fBabort\fR\^  \fBabort\fR\^(3C)       Cause an IOT signal
        !          1118:                to be sent to the
        !          1119:                process.
        !          1120: .SP
        !          1121: .ne 4
        !          1122: \fBabs\fR\^    \fBabs\fR\^(3C) Return the absolute
        !          1123:                integer value.
        !          1124: .SP
        !          1125: .ne 4
        !          1126: \fBecvt\fR\^   \fBecvt\fR\^(3C)        Convert double to
        !          1127:                string.
        !          1128: .SP
        !          1129: .ne 4
        !          1130: \fBfcvt\fR\^   \fBecvt\fR\^(3C)        Convert double to
        !          1131:                string using Fortran
        !          1132:                Format.
        !          1133: .SP
        !          1134: .ne 4
        !          1135: \fBgcvt\fR\^   \fBecvt\fR\^(3C)        Convert double to
        !          1136:                string using Fortran
        !          1137:                F or E format.
        !          1138: .SP
        !          1139: .ne 4
        !          1140: \fBisatty\fR\^ \fBttyname\fR\^(3C)     Test whether integer
        !          1141:                file descriptor is
        !          1142:                associated with a
        !          1143:                terminal.
        !          1144: .SP
        !          1145: .ne 4
        !          1146: \fBmktemp\fR\^ \fBmktemp\fR\^(3C)      Create file name
        !          1147:                using template.
        !          1148: .SP
        !          1149: .ne 4
        !          1150: \fBmonitor\fR\^        \fBmonitor\fR\^(3C)     Cause process to record
        !          1151:                a histogram of program
        !          1152:                counter location.
        !          1153: .SP
        !          1154: .ne 4
        !          1155: \fBswab\fR\^   \fBswab\fR\^(3C)        Swap and copy bytes.
        !          1156: .SP
        !          1157: .ne 4
        !          1158: \fBttyname\fR\^        \fBttyname\fR\^(3C)     Return pathname of
        !          1159:                terminal associated with
        !          1160:                integer file descriptor.
        !          1161: .TE
        !          1162: .TC 2 1 3 0

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.