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  

uio.c

Go to the documentation of this file.
00001 #include "f2c.h"
00002 #include "fio.h"
00003 uiolen f__reclen;
00004 
00005 #ifdef KR_headers
00006 do_us(number,ptr,len) ftnint *number; char *ptr; ftnlen len;
00007 #else
00008 do_us(ftnint *number, char *ptr, ftnlen len)
00009 #endif
00010 {
00011         if(f__reading)
00012         {
00013                 f__recpos += (int)(*number * len);
00014                 if(f__recpos>f__reclen)
00015                         err(f__elist->cierr, 110, "do_us");
00016                 if (fread(ptr,(int)len,(int)(*number),f__cf) != *number)
00017                         err(f__elist->ciend, EOF, "do_us");
00018                 return(0);
00019         }
00020         else
00021         {
00022                 f__reclen += *number * len;
00023                 (void) fwrite(ptr,(int)len,(int)(*number),f__cf);
00024                 return(0);
00025         }
00026 }
00027 #ifdef KR_headers
00028 integer do_ud(number,ptr,len) ftnint *number; char *ptr; ftnlen len;
00029 #else
00030 integer do_ud(ftnint *number, char *ptr, ftnlen len)
00031 #endif
00032 {
00033         f__recpos += (int)(*number * len);
00034         if(f__recpos > f__curunit->url && f__curunit->url!=1)
00035                 err(f__elist->cierr,110,"do_ud");
00036         if(f__reading)
00037         {
00038 #ifdef Pad_UDread
00039 #ifdef KR_headers
00040         int i;
00041 #else
00042         size_t i;
00043 #endif
00044                 if (!(i = fread(ptr,(int)len,(int)(*number),f__cf))
00045                  && !(f__recpos - *number*len))
00046                         err(f__elist->cierr,EOF,"do_ud")
00047                 if (i < *number)
00048                         memset(ptr + i*len, 0, (*number - i)*len);
00049                 return 0;
00050 #else
00051                 if(fread(ptr,(int)len,(int)(*number),f__cf) != *number)
00052                         err(f__elist->cierr,EOF,"do_ud")
00053                 else return(0);
00054 #endif
00055         }
00056         (void) fwrite(ptr,(int)len,(int)(*number),f__cf);
00057         return(0);
00058 }
00059 #ifdef KR_headers
00060 integer do_uio(number,ptr,len) ftnint *number; char *ptr; ftnlen len;
00061 #else
00062 integer do_uio(ftnint *number, char *ptr, ftnlen len)
00063 #endif
00064 {
00065         if(f__sequential)
00066                 return(do_us(number,ptr,len));
00067         else    return(do_ud(number,ptr,len));
00068 }
 

Powered by Plone

This site conforms to the following standards: