Doxygen Source Code Documentation
Main Page Alphabetical List Data Structures File List Data Fields Globals Search
fio.h
Go to the documentation of this file.00001 #include "stdio.h"
00002 #include "errno.h"
00003 #ifndef NULL
00004
00005 #include "stddef.h"
00006 #endif
00007
00008 #ifndef __THROW
00009 # if defined __cplusplus && (__GNUC__ >= 3 || __GNUC_MINOR__ >= 8) && !defined(DARWIN)
00010 # define __THROW throw ()
00011 # else
00012 # define __THROW
00013 # endif
00014 # define KILL__THROW
00015 #endif
00016
00017 #ifndef SEEK_SET
00018 #define SEEK_SET 0
00019 #define SEEK_CUR 1
00020 #define SEEK_END 2
00021 #endif
00022
00023 #ifdef MSDOS
00024 #ifndef NON_UNIX_STDIO
00025 #define NON_UNIX_STDIO
00026 #endif
00027 #endif
00028
00029 #ifdef UIOLEN_int
00030 typedef int uiolen;
00031 #else
00032 typedef long uiolen;
00033 #endif
00034
00035
00036 typedef struct
00037 { FILE *ufd;
00038 char *ufnm;
00039 #ifndef MSDOS
00040 long uinode;
00041 int udev;
00042 #endif
00043 int url;
00044 flag useek;
00045 flag ufmt;
00046 flag uprnt;
00047 flag ublnk;
00048 flag uend;
00049 flag uwrt;
00050 flag uscrtch;
00051 } unit;
00052
00053 extern flag f__init;
00054 extern cilist *f__elist;
00055 extern flag f__reading,f__external,f__sequential,f__formatted;
00056 #undef Void
00057 #ifdef KR_headers
00058 #define Void
00059 extern int (*f__getn)(),(*f__putn)();
00060 extern long f__inode();
00061 extern VOID sig_die();
00062 extern int (*f__donewrec)(), t_putc(), x_wSL();
00063 extern int c_sfe(), err__fl(), xrd_SL();
00064 #else
00065 #define Void void
00066 #ifdef __cplusplus
00067 extern "C" {
00068 #endif
00069 extern int (*f__getn)(void),(*f__putn)(int);
00070 extern long f__inode(char*,int*);
00071 extern void sig_die(char*,int);
00072 extern void f__fatal(int,char*);
00073 extern int t_runc(alist*);
00074 extern int f__nowreading(unit*), f__nowwriting(unit*);
00075 extern int fk_open(int,int,ftnint);
00076 extern int en_fio(void);
00077 extern void f_init(void);
00078 extern int (*f__donewrec)(void), t_putc(int), x_wSL(void);
00079 extern void b_char(char*,char*,ftnlen), g_char(char*,ftnlen,char*);
00080 extern int c_sfe(cilist*), z_rnew(void);
00081 extern int isatty(int) __THROW ;
00082 extern int err__fl(int,int,char*);
00083 extern int xrd_SL(void);
00084 #ifdef __cplusplus
00085 }
00086 #endif
00087 #endif
00088 extern int (*f__doend)(Void);
00089 extern FILE *f__cf;
00090 extern unit *f__curunit;
00091 extern unit f__units[];
00092 #define err(f,m,s) {if(f) errno= m; else f__fatal(m,s); return(m);}
00093 #define errfl(f,m,s) return err__fl((int)f,m,s)
00094
00095
00096 #define MXUNIT 100
00097
00098 extern int f__recpos;
00099 extern int f__cursor;
00100 extern int f__hiwater;
00101
00102 #define WRITE 1
00103 #define READ 2
00104 #define SEQ 3
00105 #define DIR 4
00106 #define FMT 5
00107 #define UNF 6
00108 #define EXT 7
00109 #define INT 8
00110
00111 #define buf_end(x) (x->_flag & _IONBF ? x->_ptr : x->_base + BUFSIZ)
00112
00113 #ifdef KILL__THROW
00114 #undef __THROW
00115 #endif