34 lines
1.3 KiB
C
34 lines
1.3 KiB
C
/****************************************************************
|
|
* *
|
|
* Copyright 2001 Sanchez Computer Associates, Inc. *
|
|
* *
|
|
* This source code contains the intellectual property *
|
|
* of its copyright holder(s), and is made available *
|
|
* under a license. If you do not know the terms of *
|
|
* the license, please stop and do not read further. *
|
|
* *
|
|
****************************************************************/
|
|
|
|
/* iob.h - definitions used with buffered I/O routines */
|
|
|
|
typedef struct {
|
|
int fd; /* descriptor for file */
|
|
char *path; /* filename */
|
|
int oflag; /* open flags (see the open system call) */
|
|
int mode; /* creation mode (see the open system call) */
|
|
int blksiz; /* minimum size of block */
|
|
int bufsiz; /* size of buffer (blksiz * blocking factor) */
|
|
char *buf; /* I/O buffer */
|
|
char *bptr; /* pointer to last character read/written + 1 */
|
|
int remaining; /* for read: bytes remaining to be read from buffer.
|
|
* write: remaining space in buffer */
|
|
int write_mode; /* last operation was a write */
|
|
} BFILE;
|
|
|
|
void iob_close(BFILE *bf);
|
|
void iob_flush(BFILE *bf);
|
|
BFILE *iob_open_rd(char *path, int blksiz, int blkfactor);
|
|
BFILE *iob_open_wt(char *path, int blksiz, int blkfactor);
|
|
void iob_read(BFILE *bf, char *buf, int nbytes);
|
|
void iob_write(BFILE *bf, char *buf, int nbytes);
|