48 lines
1.7 KiB
C
48 lines
1.7 KiB
C
|
/*-------------------------------------------------------------------------
|
||
|
*
|
||
|
* buffile.h
|
||
|
* Management of large buffered files, primarily temporary files.
|
||
|
*
|
||
|
* The BufFile routines provide a partial replacement for stdio atop
|
||
|
* virtual file descriptors managed by fd.c. Currently they only support
|
||
|
* buffered access to a virtual file, without any of stdio's formatting
|
||
|
* features. That's enough for immediate needs, but the set of facilities
|
||
|
* could be expanded if necessary.
|
||
|
*
|
||
|
* BufFile also supports working with temporary files that exceed the OS
|
||
|
* file size limit and/or the largest offset representable in an int.
|
||
|
* It might be better to split that out as a separately accessible module,
|
||
|
* but currently we have no need for oversize temp files without buffered
|
||
|
* access.
|
||
|
*
|
||
|
* Copyright (c) 1994, Regents of the University of California
|
||
|
*
|
||
|
* $Id: buffile.h,v 1.1 1999/10/13 15:02:32 tgl Exp $
|
||
|
*
|
||
|
*-------------------------------------------------------------------------
|
||
|
*/
|
||
|
|
||
|
#ifndef BUFFILE_H
|
||
|
#define BUFFILE_H
|
||
|
|
||
|
#include "storage/fd.h"
|
||
|
|
||
|
/* BufFile is an opaque type whose details are not known outside buffile.c. */
|
||
|
|
||
|
typedef struct BufFile BufFile;
|
||
|
|
||
|
/*
|
||
|
* prototypes for functions in buffile.c
|
||
|
*/
|
||
|
|
||
|
extern BufFile *BufFileCreateTemp(void);
|
||
|
extern BufFile *BufFileCreate(File file);
|
||
|
extern BufFile *BufFileReaccess(BufFile *file);
|
||
|
extern void BufFileClose(BufFile *file);
|
||
|
extern size_t BufFileRead(BufFile *file, void *ptr, size_t size);
|
||
|
extern size_t BufFileWrite(BufFile *file, void *ptr, size_t size);
|
||
|
extern int BufFileSeek(BufFile *file, int fileno, long offset, int whence);
|
||
|
extern void BufFileTell(BufFile *file, int *fileno, long *offset);
|
||
|
|
||
|
#endif /* BUFFILE_H */
|