#ifndef msg #include #include #include "os2defs.h" #define msg(x) #endif #include FILE *flockopen(char *name, char *mode) { int shflag = SH_DENYWR, try; char *ptr; FILE *file; char buf[80]; for ( ptr = mode; *ptr; ptr++ ) if ( *ptr == 'w' || *ptr == 'a' || *ptr == '+' ) shflag = SH_DENYRW; for ( try = 0; try < 10; try++ ) if ( (file = _fsopen(name, mode, shflag)) != NULL ) break; else if ( errno == ENOENT ) break; else { msg(name); delay(1000); } return file; } void noinherit(HFILE hFile) { DosSetFHandState(hFile, OPEN_FLAGS_NOINHERIT); }