mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.4 KiB
97 lines
3.4 KiB
/*[
|
|
* Name: host_fio.h
|
|
* Derived From: Original
|
|
* Author: Philippa Watson
|
|
* Created On: 7 February 1992
|
|
* Sccs Id: @(#)host_fio.h 1.3 08/10/92
|
|
* Purpose: Host-side definitions for standard file i/o. This
|
|
* version is placed in the base for hosts which support
|
|
* standard unix file i/o.
|
|
* Modified by Robert Kokuti 26/5/92, BCN 886
|
|
*
|
|
* (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved.
|
|
*
|
|
]*/
|
|
|
|
/* The HOST_FILE_DESC structure contains information to identify a file on disk
|
|
** For Unix, it corresponds to char *.
|
|
*/
|
|
|
|
#define HOST_FILE_DESC char *
|
|
|
|
/* The HOST_FILE structure contains any file information which needs to be
|
|
** passed to the calls below. For Unix, it corresponds to the FILE structure.
|
|
*/
|
|
|
|
#define HOST_FILE FILE *
|
|
|
|
/* host_fopen_for_read(HOST_FILE_DESC filename) opens the given file for reading and
|
|
** returns a HOST_FILE. If the returned value is zero then the open
|
|
** has failed, otherwise it has succeeded.
|
|
*/
|
|
|
|
#define host_fopen_for_read(filename) fopen(filename, "r")
|
|
|
|
/* host_fopen_for_write(HOST_FILE_DESC filename) opens the given file for writing and
|
|
** returns a HOST_FILE. If the returned value is zero then the open
|
|
** has failed, otherwise it has succeeded.
|
|
*/
|
|
|
|
#define host_fopen_for_write(filename) fopen(filename, "w")
|
|
|
|
/* host_fopen_for_write_plus(HOST_FILE_DESC filename) opens the given file for writing
|
|
** and reading and returns a HOST_FILE. If the returned value is zero
|
|
** then the open has failed, otherwise it has succeeded.
|
|
*/
|
|
|
|
#define host_fopen_for_write_plus(filename) fopen(filename, "w+")
|
|
|
|
/* host_fcreate_disk_file(HOST_FILE_DESC filename) creates & opens the given file for writing
|
|
** and reading and returns a HOST_FILE. If the returned value is zero
|
|
** then the create & open has failed, otherwise it has succeeded.
|
|
*/
|
|
|
|
#define host_fcreate_disk_file(filename) fopen(filename, "w+")
|
|
|
|
/* host_fclose(HOST_FILE file) closes the given file. This routine returns
|
|
** zero for success. Any other return value is failure.
|
|
*/
|
|
|
|
#define host_fclose(file) (fclose(file) != EOF)
|
|
|
|
/* host_fseek_abs(HOST_FILE file, LONG location) seeks to the given absolute
|
|
** position in the file (i.e. relative to the start). It returns zero for
|
|
** success. Any other return value is a failure.
|
|
*/
|
|
|
|
#define host_fseek_abs(file, location) fseek(file, location, SEEK_SET)
|
|
|
|
/* host_fwrite_buffer(unsigned char *buffer, int itemsize, int nitems,
|
|
** HOST_FILE file) writes nitems each of itemsize from the buffer to the
|
|
** file. It returns zero for success. Any other return value is a failure.
|
|
*/
|
|
|
|
#define host_fwrite_buffer(buffer, itemsize, nitems, file) \
|
|
(fwrite(buffer, itemsize, nitems, file) != nitems)
|
|
|
|
/* host_fread_buffer(unsigned char *buffer, int itemsize, int nitems,
|
|
** HOST_FILE file) reads nitems each of itemsize from the file into the
|
|
** buffer. It returns zero for success. Any other return value is a failure.
|
|
*/
|
|
|
|
#define host_fread_buffer(buffer, itemsize, nitems, file) \
|
|
(fread(buffer, itemsize, nitems, file) != nitems)
|
|
|
|
/* host_feof(HOST_FILE file) returns non-zero when end of file is read from
|
|
** the file. It returns zero otherwise.
|
|
*/
|
|
|
|
#define host_feof(file) feof(file)
|
|
|
|
/* A useful define to avoid using lots of seek/write pairs. If the result is 0
|
|
** then the seek and write were successful; otherwise one of them failed.
|
|
*/
|
|
|
|
#define host_fwrite_buffer_at(file, location, buffer, itemsize, nitems) \
|
|
(host_fseek_abs(file, location) || \
|
|
host_fwrite_buffer(buffer, itemsize, nitems, file))
|