---
name: "umask"
section: "2"
platform: "macos"
package: "xnu"
version: "12377.121.6"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/umask/2"
---

# umask(2)

set file creation mode mask

## NAME

**umask** – set file creation mode mask

## SYNOPSIS

**#include \<sys/stat.h\>**

*mode\_t*\

**umask**(*mode\_t cmask*);

## DESCRIPTION

The **umask**() routine sets the process's file mode creation mask to *cmask* and returns the previous value of the mask. The 9 low-order access permission bits of *cmask* are used by system calls, including [open(2)](/open/2.md), [mkdir(2)](/mkdir/2.md), [mkfifo(2)](/mkfifo/2.md), and [mknod(2)](/mknod/2.md) to turn off corresponding bits requested in file mode. (See [chmod(2)](/chmod/2.md)). This clearing allows each user to restrict the default access to his files.

The default mask value is S\_IWGRP \| S\_IWOTH (022, write access for the owner only). Child processes inherit the mask of the calling process.

## RETURN VALUES

The previous value of the file mode mask is returned by the call.

## ERRORS

The **umask**() function is always successful.

## LEGACY SYNOPSIS

**#include \<sys/types.h\>** **#include \<sys/stat.h\>**

The include file ⟨sys/types.h⟩ is necessary.

## SEE ALSO

[chmod(2)](/chmod/2.md), [mkdir(2)](/mkdir/2.md), [mkfifo(2)](/mkfifo/2.md), [mknod(2)](/mknod/2.md), [open(2)](/open/2.md), [compat(5)](/compat/5.md)

## STANDARDS

The **umask**() function call is expected to conform to  IEEE Std 1003.1-1988 (“POSIX.1”).
