Kaynağa Gözat

LibCore: Add Core::UmaskScope to set and unset a temporary umask

Andreas Kling 3 yıl önce
ebeveyn
işleme
edd8f19a1b
1 değiştirilmiş dosya ile 30 ekleme ve 0 silme
  1. 30 0
      Userland/Libraries/LibCore/UmaskScope.h

+ 30 - 0
Userland/Libraries/LibCore/UmaskScope.h

@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#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 {};
+};
+
+}