fixed flags handling of ase_fio_open()

This commit is contained in:
2008-12-12 23:47:07 +00:00
parent 596b42a211
commit d28108c996
2 changed files with 24 additions and 13 deletions

View File

@ -139,21 +139,23 @@ ase_fio_t* ase_fio_init (
#endif
/*
* rwa -> RDWR | APPEND
* ra -> RDONLY | APPEND
* ra -> RDWR | APPEND
* wa -> WRONLY | APPEND
* a -> WRONLY | APPEND
*/
if ((flags & ASE_FIO_READ) &&
(flags & ASE_FIO_WRITE)) desired_access |= O_RDWR;
else if (flags & ASE_FIO_READ) desired_access |= O_RDONLY;
else if (flags & ASE_FIO_WRITE) desired_access |= O_WRONLY;
if (flags & ASE_FIO_APPEND)
{
if (!(flags & ASE_FIO_READ) &&
!(flags & ASE_FIO_WRITE)) desired_access |= O_WRONLY;
if ((flags & ASE_FIO_READ)) desired_access |= O_RDWR;
else desired_access |= O_WRONLY;
desired_access |= O_APPEND;
}
else
{
if ((flags & ASE_FIO_READ) &&
(flags & ASE_FIO_WRITE)) desired_access |= O_RDWR;
else if (flags & ASE_FIO_READ) desired_access |= O_RDONLY;
else if (flags & ASE_FIO_WRITE) desired_access |= O_WRONLY;
}
if (flags & ASE_FIO_CREATE) desired_access |= O_CREAT;
if (flags & ASE_FIO_TRUNCATE) desired_access |= O_TRUNC;