- int osmode = 0;
- if ( mode & _PDCLIB_FRW ) osmode |= O_RDWR;
- if ( mode & ( _PDCLIB_FWRITE | _PDCLIB_FAPPEND ) ) osmode |= O_CREAT;
- if ( mode & _PDCLIB_FWRITE ) osmode |= O_TRUNC;
- if ( mode & _PDCLIB_FAPPEND ) osmode |= O_APPEND;
- if ( ( mode & _PDCLIB_FREAD ) && ! ( mode & _PDCLIB_FRW ) ) osmode |= O_RDONLY;
- return open( filename, osmode );