1 #include <../../nrnconf.h>
18 #include <sys/types.h>
28 static NrnFILEWrap* nrn_fw_read(
const char* path,
const char* mode);
69 f =
fopen(path, mode);
74 fw = nrn_fw_read(path, mode);
79 int nrn_fw_readaccess(
const char* path) {
82 r = access(path, R_OK);
85 r = access(path, R_OK);
87 printf(
"access %s %d\n", path, r);
92 r = ((r == 0) ? 1 : 0);
100 r = fseek(fw->f, offset, whence);
101 }
else if (fw->buf) {
111 i = offset + fw->cnt;
114 if (
i >= 0 && i <= fw->
cnt) {
131 }
else if (fw->buf) {
132 if (fw->ip < fw->cnt) {
133 c = (int) fw->buf[fw->ip++];
142 e = ungetc(
c, fw->f);
143 }
else if (fw->buf) {
145 fw->buf[--fw->ip] = (
unsigned char)
c;
152 static int nrn_vsscanf(
const char* str,
const char** rs,
const char*
format, va_list args);
159 i = vfscanf(fw->f, fmt, ap);
160 }
else if (fw->buf) {
162 i = nrn_vsscanf(fw->buf + fw->ip, &rs, fmt, ap);
163 fw->ip = (
unsigned char*) rs - fw->buf;
169 NrnFILEWrap* nrn_fw_read(
const char* path,
const char* mode) {
173 unsigned char*
buf = (
char*) 0;
175 FILE* f =
fopen(path, mode);
187 printf(
"load %s %d\n", path, isz);
207 fw->buf = (
unsigned char*)
buf;
char * emalloc(unsigned n)
#define nrn_fw_set_stdin()
#define nrn_fw_delete(fw)
#define nrn_fw_ungetc(c, fw)
static void nrnmpi_char_broadcast(char *, int, int)
static void nrnmpi_int_broadcast(int *, int, int)