Annotation of researchv10dc/man/adm/man3/fio.3, revision 1.1.1.1

1.1       root        1: .TH FIO 3
                      2: .CT 2 file_io
                      3: .SH NAME
                      4: Finit, Frdline, Fgetc, Fread, Fseek, Fundo,
                      5: Fputc, Fprint, Fwrite, Fflush, Ftie, Fclose, Fexit \(mi fast buffered input/output
                      6: .SH SYNOPSIS
                      7: .nf
                      8: .2C
                      9: .B #include <fio.h>
                     10: .PP
                     11: .B void Finit(fd, buf)
                     12: .B char *buf;
                     13: .PP
                     14: .B void Fclose(fd);
                     15: .PP
                     16: .B int Fprint(fildes, format [, arg ...])
                     17: .B int fildes;
                     18: .B char \(**format;
                     19: .PP
                     20: .B char *Frdline(fd)
                     21: .PP
                     22: .B int FIOLINELEN(fd)
                     23: .PP
                     24: .B long FIOSEEK(fd)
                     25: .PP
                     26: .B int Fgetc(fd)
                     27: .PP
                     28: .B void Fundo(fd)
                     29: .PP
                     30: .B long Fseek(fd, offset, ptr)
                     31: .B long offset;
                     32: .PP
                     33: .B int Fputc(fd, c)
                     34: .PP
                     35: .B long Fread(fd, addr, nbytes)
                     36: .B char *addr;
                     37: .B long nbytes;
                     38: .PP
                     39: .B int Fwrite(fd, addr, nbytes)
                     40: .B char *addr;
                     41: .B long nbytes;
                     42: .PP
                     43: .B int Fflush(fd)
                     44: .PP
                     45: .B void Ftie(ifd, ofd)
                     46: .PP
                     47: .B Fexit(type)
                     48: .1C
                     49: .fi
                     50: .SH DESCRIPTION
                     51: These routines provide buffered I/O, faster than, and incompatible
                     52: with
                     53: .IR stdio (3).
                     54: The routines can be called in any order.
                     55: I/O on different file descriptors is independent.
                     56: .PP
                     57: .I Finit
                     58: initializes a buffer (whose type is
                     59: .IR Fbuffer )
                     60: associated with the file descriptor
                     61: .IR fd .
                     62: Any buffered input associated with
                     63: .I fd
                     64: will be lost.
                     65: The buffer can be supplied by the user
                     66: (it should be at least
                     67: .B sizeof(Fbuffer)
                     68: bytes)
                     69: or if
                     70: .I buf
                     71: is
                     72: .BR "(char *)0" ,
                     73: .I Finit
                     74: will use
                     75: .IR malloc (3).
                     76: .IR Finit
                     77: must be called after a stretch of
                     78: .IR non- fio
                     79: activity, such as
                     80: .IR close
                     81: or
                     82: .IR lseek (2),
                     83: between
                     84: .I fio
                     85: calls on the same file descriptor number;
                     86: it is unnecessary, but harmless, before the first
                     87: .I fio
                     88: activity on a given file descriptor number.
                     89: .PP
                     90: .I Fclose
                     91: flushes the buffer for
                     92: .IR fd ,
                     93: .IR free s
                     94: the buffer if it was allocated by
                     95: .IR Finit ,
                     96: and then closes
                     97: .IR fd .
                     98: .PP
                     99: .I Frdline
                    100: reads a line from the file associated with the file descriptor
                    101: .IR fd .
                    102: The newline at the end of the line is replaced by a 0
                    103: byte.
                    104: Lines longer than 4096 characters will have characters deleted.
                    105: .I Frdline
                    106: returns a pointer to the start of the line or
                    107: .L (char *)0
                    108: on end of file or read error.
                    109: The macro
                    110: .I FIOLINELEN
                    111: returns the length (not including the 0
                    112: byte) of the most recent line returned by
                    113: .IR Frdline .
                    114: The value is undefined after a call to any other
                    115: .I fio
                    116: routine.
                    117: .PP
                    118: .I Fgetc
                    119: returns the next character from the file descriptor
                    120: .IR fd ,
                    121: or a negative value
                    122: at end of file.
                    123: .PP
                    124: .I Fread
                    125: reads
                    126: .I nbytes
                    127: of data from the file descriptor
                    128: .I fd
                    129: into memory starting at
                    130: .IR addr .
                    131: The number of bytes read is returned on success
                    132: and a negative value is returned if a read error occurred.
                    133: .PP
                    134: .I Fseek
                    135: applies
                    136: .IR lseek (2)
                    137: to
                    138: .I fd
                    139: taking buffering into account.
                    140: It returns the new file offset.
                    141: The macro
                    142: .I FIOSEEK
                    143: returns the file offset of the next character to be processed.
                    144: .PP
                    145: .I Fundo
                    146: makes the characters returned by the last call to
                    147: .I Frdline
                    148: or
                    149: .I Fgetc
                    150: available for reading again.
                    151: There is only one level of undo.
                    152: .PP
                    153: .I Fputc
                    154: outputs the low order 8 bits of
                    155: .I c
                    156: on the file associated with file descriptor
                    157: .IR fd .
                    158: If this causes a
                    159: .IR write
                    160: (see
                    161: .IR read (2))
                    162: to occur and there is an error,
                    163: a negative value is returned.
                    164: Otherwise, zero is returned.
                    165: .PP
                    166: .I Fprint
                    167: is a buffered interface to
                    168: .IR print (3).
                    169: If this causes a
                    170: .IR write
                    171: to occur and there is an error,
                    172: a negative value is returned.
                    173: Otherwise, the number of chars output is returned.
                    174: .PP
                    175: .I Fwrite
                    176: outputs
                    177: .I nbytes
                    178: bytes of data starting at
                    179: .I addr
                    180: to the file associated with file descriptor
                    181: .IR fd .
                    182: If this causes a
                    183: .IR write
                    184: to occur and there is an error,
                    185: a negative value is returned.
                    186: Otherwise, the number of bytes written is returned.
                    187: .PP
                    188: .I Fflush
                    189: causes any buffered output associated with
                    190: .I fd
                    191: to be written;
                    192: it must precede a call of
                    193: .I close
                    194: on
                    195: .IR fd.
                    196: The return is as for
                    197: .IR Fputc .
                    198: .PP
                    199: .I Ftie
                    200: links together two file descriptors such that any
                    201: .IR fio -initiated
                    202: .IR read (2)
                    203: on
                    204: .I ifd
                    205: causes a
                    206: .I Fflush
                    207: of
                    208: .I ofd
                    209: (if it has been initialized).
                    210: It is appropriate for most programs used as filters to do
                    211: .BR Ftie(0,1) .
                    212: The tie may be broken by
                    213: .BR "Ftie(ifd, -1)" .
                    214: .PP
                    215: .I Fexit
                    216: is used to clean up all
                    217: .I fio
                    218: buffers.
                    219: If
                    220: .I type
                    221: is zero, the buffers are
                    222: .IR Fflush ed,
                    223: otherwise they are
                    224: .IR Fclose d.
                    225: .B "Fexit(0)"
                    226: is automatically called at
                    227: .IR exit (3).
                    228: .SH SEE ALSO
                    229: .IR open (2),
                    230: .IR print (3),
                    231: .IR stdio (3)
                    232: .SH DIAGNOSTICS
                    233: .I Fio
                    234: routines that return integers yield
                    235: .B -1
                    236: if 
                    237: .I fd
                    238: is not the descriptor of an open file or if the operation
                    239: is inapplicable to
                    240: .I fd.
                    241: .SH BUGS
                    242: The data returned by
                    243: .I Frdline
                    244: may be overwritten by calls to any other
                    245: .I fio
                    246: routine.
                    247: .br
                    248: .I Fgetc
                    249: is much slower than
                    250: access through a pointer returned by
                    251: .I Frdline.
                    252: .br
                    253: There is no 
                    254: .IR scanf (3)
                    255: analogue.

unix.superglobalmegacorp.com

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