r O_RDONLY
r+ O_RDWR
w O_WRONLY|O_CREATE|O_TRUNC
w+ O_RDWR|O_CREATE|O_TRUNC
a O_WRONLY|O_CREATE|O_APPEND
a+ O_RDWR|O_CREATE|O_APPEND
r O_RDONLY
r+ O_RDWR
w O_WRONLY|O_CREATE|O_TRUNC
w+ O_RDWR|O_CREATE|O_TRUNC
a O_WRONLY|O_CREATE|O_APPEND
a+ O_RDWR|O_CREATE|O_APPEND