Annotation of researchv10dc/man/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 int 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 long 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: .I Frdline
                    105: returns a pointer to the start of the line or
                    106: .L (char *)0
                    107: on end of file or read error.
                    108: The macro
                    109: .I FIOLINELEN
                    110: returns the length (not including the 0
                    111: byte) of the most recent line returned by
                    112: .IR Frdline .
                    113: The value is undefined after a call to any other
                    114: .I fio
                    115: routine.
                    116: .PP
                    117: .I Fgetc
                    118: returns the next character from the file descriptor
                    119: .IR fd ,
                    120: or a negative value
                    121: at end of file.
                    122: .PP
                    123: .I Fread
                    124: reads
                    125: .I nbytes
                    126: of data from the file descriptor
                    127: .I fd
                    128: into memory starting at
                    129: .IR addr .
                    130: The number of bytes read is returned on success
                    131: and a negative value is returned if a read error occurred.
                    132: .PP
                    133: .I Fseek
                    134: applies
                    135: .IR lseek (2)
                    136: to
                    137: .I fd
                    138: taking buffering into account.
                    139: It returns the new file offset.
                    140: The macro
                    141: .I FIOSEEK
                    142: returns the file offset of the next character to be processed.
                    143: .PP
                    144: .I Fundo
                    145: makes the characters returned by the last call to
                    146: .I Frdline
                    147: or
                    148: .I Fgetc
                    149: available for reading again.
                    150: There is only one level of undo.
                    151: .PP
                    152: .I Fputc
                    153: outputs the low order 8 bits of
                    154: .I c
                    155: on the file associated with file descriptor
                    156: .IR fd .
                    157: If this causes a
                    158: .IR write
                    159: (see
                    160: .IR read (2))
                    161: to occur and there is an error,
                    162: a negative value is returned.
                    163: Otherwise, zero is returned.
                    164: .PP
                    165: .I Fprint
                    166: is a buffered interface to
                    167: .IR print (3).
                    168: If this causes a
                    169: .IR write
                    170: to occur and there is an error,
                    171: a negative value is returned.
                    172: Otherwise, the number of chars output is returned.
                    173: .PP
                    174: .I Fwrite
                    175: outputs
                    176: .I nbytes
                    177: bytes of data starting at
                    178: .I addr
                    179: to the file associated with file descriptor
                    180: .IR fd .
                    181: If this causes a
                    182: .IR write
                    183: to occur and there is an error,
                    184: a negative value is returned.
                    185: Otherwise, the number of bytes written is returned.
                    186: .PP
                    187: .I Fflush
                    188: causes any buffered output associated with
                    189: .I fd
                    190: to be written;
                    191: it must precede a call of
                    192: .I close
                    193: on
                    194: .IR fd.
                    195: The return is as for
                    196: .IR Fputc .
                    197: .PP
                    198: .I Ftie
                    199: links together two file descriptors such that any
                    200: .IR fio -initiated
                    201: .IR read (2)
                    202: on
                    203: .I ifd
                    204: causes a
                    205: .I Fflush
                    206: of
                    207: .I ofd
                    208: (if it has been initialized).
                    209: It is appropriate for most programs used as filters to do
                    210: .BR Ftie(0,1) .
                    211: The tie may be broken by
                    212: .BR "Ftie(ifd, -1)" .
                    213: .PP
                    214: .I Fexit
                    215: is used to clean up all
                    216: .I fio
                    217: buffers.
                    218: If
                    219: .I type
                    220: is zero, the buffers are
                    221: .IR Fflush ed,
                    222: otherwise they are
                    223: .IR Fclose d.
                    224: .B "Fexit(0)"
                    225: is automatically called at
                    226: .IR exit (3).
                    227: .SH SEE ALSO
                    228: .IR open (2),
                    229: .IR print (3),
                    230: .IR stdio (3)
                    231: .SH DIAGNOSTICS
                    232: .I Fio
                    233: routines that return integers yield
                    234: .B -1
                    235: if 
                    236: .I fd
                    237: is not the descriptor of an open file or if the operation
                    238: is inapplicable to
                    239: .I fd.
                    240: .SH BUGS
                    241: .I Frdline
                    242: deletes characters from lines longer than 4095 characters,
                    243: ignores characters after the last newline in a file,
                    244: and will read past and end-of-file indication on a stream.
                    245: .br
                    246: The data returned by
                    247: .I Frdline
                    248: may be overwritten by calls to any other
                    249: .I fio
                    250: routine.
                    251: .br
                    252: .I Fgetc
                    253: is much slower than
                    254: access through a pointer returned by
                    255: .I Frdline.
                    256: .br
                    257: There is no 
                    258: .IR scanf (3)
                    259: analogue.

unix.superglobalmegacorp.com

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