00001 #include "f2c.h" 00002 #include "fio.h" 00003 #ifdef __cplusplus 00004 extern "C" { 00005 #endif 00006 00007 static FILE * 00008 #ifdef KR_headers 00009 unit_chk(Unit, who) integer Unit; char *who; 00010 #else 00011 unit_chk(integer Unit, char *who) 00012 #endif 00013 { 00014 if (Unit >= MXUNIT || Unit < 0) 00015 f__fatal(101, who); 00016 return f__units[Unit].ufd; 00017 } 00018 00019 longint 00020 #ifdef KR_headers 00021 ftell64_(Unit) integer *Unit; 00022 #else 00023 ftell64_(integer *Unit) 00024 #endif 00025 { 00026 FILE *f; 00027 return (f = unit_chk(*Unit, "ftell")) ? FTELL(f) : -1L; 00028 } 00029 00030 int 00031 #ifdef KR_headers 00032 fseek64_(Unit, offset, whence) integer *Unit, *whence; longint *offset; 00033 #else 00034 fseek64_(integer *Unit, longint *offset, integer *whence) 00035 #endif 00036 { 00037 FILE *f; 00038 int w = (int)*whence; 00039 #ifdef SEEK_SET 00040 static int wohin[3] = { SEEK_SET, SEEK_CUR, SEEK_END }; 00041 #endif 00042 if (w < 0 || w > 2) 00043 w = 0; 00044 #ifdef SEEK_SET 00045 w = wohin[w]; 00046 #endif 00047 return !(f = unit_chk(*Unit, "fseek")) 00048 || FSEEK(f, (OFF_T)*offset, w) ? 1 : 0; 00049 } 00050 #ifdef __cplusplus 00051 } 00052 #endif