1*c9945492SAndroid Build Coastguard Worker #include <fcntl.h> 2*c9945492SAndroid Build Coastguard Worker #include <string.h> 3*c9945492SAndroid Build Coastguard Worker __fmodeflags(const char * mode)4*c9945492SAndroid Build Coastguard Workerint __fmodeflags(const char *mode) 5*c9945492SAndroid Build Coastguard Worker { 6*c9945492SAndroid Build Coastguard Worker int flags; 7*c9945492SAndroid Build Coastguard Worker if (strchr(mode, '+')) flags = O_RDWR; 8*c9945492SAndroid Build Coastguard Worker else if (*mode == 'r') flags = O_RDONLY; 9*c9945492SAndroid Build Coastguard Worker else flags = O_WRONLY; 10*c9945492SAndroid Build Coastguard Worker if (strchr(mode, 'x')) flags |= O_EXCL; 11*c9945492SAndroid Build Coastguard Worker if (strchr(mode, 'e')) flags |= O_CLOEXEC; 12*c9945492SAndroid Build Coastguard Worker if (*mode != 'r') flags |= O_CREAT; 13*c9945492SAndroid Build Coastguard Worker if (*mode == 'w') flags |= O_TRUNC; 14*c9945492SAndroid Build Coastguard Worker if (*mode == 'a') flags |= O_APPEND; 15*c9945492SAndroid Build Coastguard Worker return flags; 16*c9945492SAndroid Build Coastguard Worker } 17