static int DoOpen( char *name, unsigned mode, bool isexe ) /********************************************************/ { int h; int perm; CheckBreak(); mode |= O_BINARY; perm = PMODE_RW; if( isexe ) perm = PMODE_RWX; for( ;; ) { if( OpenFiles >= MAX_OPEN_FILES ) CleanCachedHandles(); h = open( name, mode, perm ); if( h != -1 ) { OpenFiles++; break; } if( errno != TOOMANY ) break; if( !CleanCachedHandles() ) { break; } } return( h ); }
static tiny_ret_t DoOpen( char *name, bool create, unsigned mode ) /****************************************************************/ { tiny_ret_t h; CheckBreak(); for( ;; ) { if( OpenFiles >= MAX_OPEN_FILES ) CleanCachedHandles(); if( create ) { h = TinyCreate( name, mode ); } else { h = TinyOpen( name, mode ); } if( TINY_OK( h ) ) { OpenFiles++; break; } if( TINY_INFO( h ) != TOOMANY ) break; if( !CleanCachedHandles() ) break; } return( h ); }
static int DoOpen( char *name, unsigned mode, bool isexe ) /********************************************************/ { int h; isexe = isexe; CheckBreak(); mode |= O_BINARY; for( ;; ) { if( OpenFiles >= MAX_OPEN_FILES ) CleanCachedHandles(); h = open( name, mode, S_IRUSR | S_IWUSR ); if( h != -1 ) { OpenFiles++; break; } if( errno != TOOMANY ) break; if( !CleanCachedHandles() ) { break; } } return( h ); }