home *** CD-ROM | disk | FTP | other *** search
- /* stdio.h
- * ANSI C Runtime Library
- */
-
- #ifndef _STDDEF_H
- # include <stddef.h>
- #endif /* _STDDEF_H */
- #ifndef _STDARG_H
- # include <stdarg.h>
- #endif /* _STDARG_H */
-
- #ifndef _STDIO_H
- #define _STDIO_H
-
- #define _NFILE 64
-
- typedef struct { unsigned char *base, *lastwritable;
- unsigned char *firstvalid, *lastvalid;
- int page;
- char dirty_bit, dos_ascii,dum2,dum3; } _a_buffer;
-
- extern struct iobuf {
- _a_buffer *buffers, temp_storage;
- _a_buffer *curbuf;
- unsigned char *next, *oldnext;
- long curpos, lastpos;
- unsigned char *ref_stack;
- unsigned int bufsiz;
- unsigned char _nbuffer;
- unsigned int recsize; /* 1 for all files except fortran direct
- access unformatted files. */
-
- short io_channel; /* OS I/O channel number */
- char io_tmp; /* used by ungetc on unbuffered files */
- unsigned have_done_ungetc:1;
- unsigned io_buffering:2; /* UN_BUFFER,BLOCK_BUFFER,LINE_BUFFER*/
- unsigned io_eof: 1; /* have read end of file */
- unsigned io_error:1; /* have detected io error in file */
- unsigned io_stdio_buffer:1; /* buffer for this file created by stdio */
- unsigned io_readable:1; /* file may be read at this time */
- unsigned io_writable:1; /* file may be written at this time */
- unsigned io_readwrite:1; /* file opened for both reading and writing */
- } _iob[_NFILE];
-
-
- #define stdin (&_iob[0])
- #define stdout (&_iob[1])
- #define stderr (&_iob[2])
-
- #define _MULTIBUFFERS(file) (file->io_readable && file->io_buffering ==\
- BLOCK_BUFFER && file->io_stdio_buffer &&\
- !file->curbuf->dos_ascii )
-
- #define FILE struct iobuf
-
-
- typedef int fpos_t;
-
- #define _IOFBF 0
- #define _IOLBF 1
- #define _IONBF 2
- #define _IOSBF 3
-
- #define BUFSIZ 8*1024 /* buffer size for all IO buffers */
- #define _NBUFFER 1 /* # buffers when program begins execution *.
- /* next line defines eof */
- #define EOF (-1)
- #define L_tmpnam 32
- #define OPEN_MAX _NFILE
- #define PATH_MAX 1023
-
- #define SEEK_CUR 1
- #define SEEK_END 2
- #define SEEK_SET 0
-
- #define TMP_MAX 0x7fffffff
-
- /* macro defs for compatability with former libraries */
-
- #define BLOCK_BUFFER _IOFBF /* get rid of these names */
- #define LINE_BUFFER _IOLBF
- #define UN_BUFFER _IONBF
- #define STRING_BUFFER _IOSBF
-
- /* variables */
- extern FILE _iob[_NFILE];
-
- /* functions */
-
- int remove(const char *filename);
- int rename(const char *old, const char *new);
- FILE *tmpfile(void);
- char *tmpnam(char *s);
-
- int fclose(FILE *stream);
- int fflush(FILE *stream);
- FILE *fopen(const char *filename, const char *mode);
- FILE *freopen(const char *filename, const char *mode, FILE *stream);
- void setbuf(FILE *stream, char *buf);
- int setvbuf(FILE *stream, char *buf, int mode, size_t size);
- int fprintf(FILE *stream, const char *format, ...);
- int fscanf(FILE *stream, const char *format, ...);
- int printf(const char *format, ...);
- int scanf(const char *format, ...);
- int sprintf(char *s, const char *format, ...);
- int sscanf(const char *s, const char *format, ...);
- int vfprintf(FILE *stream, const char *format, va_list arg);
- int vprintf(const char *format, va_list arg);
- int vsprintf(char *s, const char *format, va_list arg);
- int vfscanf(FILE *stream, const char *format, va_list arg);
- int vscanf(const char *format, va_list arg);
- int vsscanf(const char *s, const char *format, va_list arg);
-
- int fgetc(FILE *stream);
- char *fgets(char *s, int n, FILE *stream);
- int fputc(int c, FILE *stream);
- int fputs(const char *s, FILE *stream);
- int getc(FILE *stream);
- #define getc(f) ((f)->next < (f)->curbuf->firstvalid || (f)->next >=\
- (f)->curbuf->lastvalid ? _filbuf(f) : *(f)->next++ )
-
- int getchar(void);
- #define getchar() getc(stdin)
- char *gets(char *s);
- int putc(int c, FILE *stream);
-
- #define putc(ch,f) ((f)->next>=(f)->curbuf->lastwritable?_flsbuf((ch),f):\
- ((f)->curbuf->dirty_bit = 1, *(f)->next++ = (ch)))
-
- int putchar(int c);
- #define putchar(ch) putc(ch,stdout)
- int puts(const char *s);
-
- int ungetc(int c, FILE *stream);
-
- size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
- size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
-
- int fgetpos(FILE *stream, fpos_t *pos);
- int fseek(FILE *stream, long int offset, int whence);
- int fsetpos(FILE *stream, const fpos_t *pos);
- long int ftell(FILE *stream);
- void rewind(FILE *stream);
-
- void clearerr(FILE *stream);
- #define clearerr(file) (void) ((file)->io_eof=0,(file)->io_error=0)
- int feof(FILE *stream);
- #define feof(file) ((file)->io_eof)
- int ferror(FILE *stream);
- #define ferror(file) ((file)->io_error)
-
- void perror(const char *s);
-
- /* macro function included for compatability */
- #define fileno(file) ((file)->io_channel)
- #define _fileno(file) ((file)->io_channel) /* this is a valid ANSI name */
-
-
-
- extern int _pmode;
-
- int setmode ();
- #define O_TEXT 0x4000 /* input parameter for setmode */
- #define O_BINARY 0x8000 /* input parameter for setmode */
-
- int open (char *name, int perms);
- int creat (char *name, int perms);
- int close (int fd);
-
- #endif
-