M_WRITE = 2,
M_RDWR = M_READ|M_WRITE,
M_APPEND = 4,
- M_NONBLOCK = 8
+ M_NONBLOCK = 8,
+ M_INHERIT = 16
};
inline Mode operator|(Mode m, Mode n)
inline Mode operator~(Mode m)
{ return Mode(~static_cast<int>(m)); }
+inline void adjust_mode(Mode &m, Mode f, bool b)
+{ m = b ? (m|f) : (m&~f); }
+
class invalid_access: public std::logic_error
{