Проверка режима доступа к файлу немного сложнее, так как константы O_RDONLY (0), O_WRONLY (1) и O_RDWR (2) не соответствуют отдельным битам во флагах состояния открытия файла. Поэтому, чтобы сделать эту проверку, мы маскируем значение флагов константой O_ACCMODE, а затем проверяем на равенство одну из констант:
accessMode = flags & O_ACCMODE;
if (accessMode == O_WRONLY || accessMode == O_RDWR)
printf("file is writable\n");
Я хочу понять, как работают флаги выражения и O_ACCMODE.
Извините за плохое форматирование, пишу с телефона