diff --git a/Userland/Libraries/LibCore/UmaskScope.h b/Userland/Libraries/LibCore/UmaskScope.h new file mode 100644 index 0000000000..f77c22956d --- /dev/null +++ b/Userland/Libraries/LibCore/UmaskScope.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2022, Andreas Kling + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include + +#pragma once + +namespace Core { + +class UmaskScope { +public: + explicit UmaskScope(mode_t mask) + { + m_old_mask = umask(mask); + } + + ~UmaskScope() + { + umask(m_old_mask); + } + +private: + mode_t m_old_mask {}; +}; + +}