#include #define MSDOS 1 #define VAXVMS 2 #define UNIX42 3 #define SYSV 4 #define READ 0 #define WRITE 1 #define MACHINE MSDOS ebinopen(name, mode) char *name; int mode; { int fn; if((fn = binopen(name, mode)) != -1) return fn; fprintf(stderr, "Cannot %s: %s\n", mode == 1 ? "create" : "open", name); exit(1); } binopen(name, mode) char *name; int mode; { #if MACHINE == VAXVMS if(mode == WRITE) return creat(name, 0666); else return open(name, mode); #endif #if MACHINE == MSDOS #define UNCOOKED 0x8000 /* pure binary i/o */ if(mode == WRITE) return creat(name, 0666 | UNCOOKED); else return open(name, mode | UNCOOKED); #endif #if MACHINE == UNIX42 ))))) force-compiler-error #endif #if MACHINE == SYSV ))))) force-compiler-error #endif }