Annotation of 43BSDReno/share/doc/ps1/01.Clang/Clib.ms, revision 1.1.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.