Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

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 /* ANSI C */
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 /*units*/
00036 typedef struct
00037 {       FILE *ufd;      /*0=unconnected*/
00038         char *ufnm;
00039 #ifndef MSDOS
00040         long uinode;
00041         int udev;
00042 #endif
00043         int url;        /*0=sequential*/
00044         flag useek;     /*true=can backspace, use dir, ...*/
00045         flag ufmt;
00046         flag uprnt;
00047         flag ublnk;
00048         flag uend;
00049         flag uwrt;      /*last io was write*/
00050         flag uscrtch;
00051 } unit;
00052 
00053 extern flag f__init;
00054 extern cilist *f__elist;        /*active external io list*/
00055 extern flag f__reading,f__external,f__sequential,f__formatted;
00056 #undef Void
00057 #ifdef KR_headers
00058 #define Void /*void*/
00059 extern int (*f__getn)(),(*f__putn)();   /*for formatted io*/
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);    /*for formatted io*/
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;     /*current file*/
00090 extern unit *f__curunit;        /*current unit*/
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 /*Table sizes*/
00096 #define MXUNIT 100
00097 
00098 extern int f__recpos;   /*position in current record*/
00099 extern int f__cursor;   /* offset to move to */
00100 extern int f__hiwater;  /* so TL doesn't confuse us */
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
 

Powered by Plone

This site conforms to the following standards: