Man Pages

umask(2) - phpMan umask(2) - phpMan

Command: man perldoc info search(apropos)  


UMASK(2)                   Linux Programmer's Manual                  UMASK(2)



NAME
       umask - set file mode creation mask

SYNOPSIS
       #include <sys/types.h>
       #include <sys/stat.h>

       mode_t umask(mode_t mask);

DESCRIPTION
       umask()  sets the calling process's file mode creation mask (umask) to mask & 0777 (i.e., only the file permis-
       sion bits of mask are used), and returns the previous value of the mask.

       The umask is used by open(2), mkdir(2), and other system calls that create  files  to  modify  the  permissions
       placed  on  newly created files or directories.  Specifically, permissions in the umask are turned off from the
       mode argument to open(2) and mkdir(2).

       The constants that should be used to specify mask are described under stat(2).

       The typical default value for the process umask is S_IWGRP | S_IWOTH (octal 022).  In the usual case where  the
       mode argument to open(2) is specified as:

           S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH

       (octal 0666) when creating a new file, the permissions on the resulting file will be:

           S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH

       (because 0666 & ~022 = 0644; i.e., rw-r--r--).

RETURN VALUE
       This system call always succeeds and the previous value of the mask is returned.

CONFORMING TO
       SVr4, 4.3BSD, POSIX.1-2001.

NOTES
       A child process created via fork(2) inherits its parent's umask.  The umask is left unchanged by execve(2).

       The  umask  setting  also  affects  the  permissions  assigned  to  POSIX IPC objects (mq_open(3), sem_open(3),
       shm_open(3)), FIFOs (mkfifo(3)), and Unix domain sockets (unix(7)) created by the process.  The umask does  not
       affect  the  permissions  assigned  to System V IPC objects created by the process (using msgget(2), semget(2),
       shmget(2)).

SEE ALSO
       chmod(2), mkdir(2), open(2), stat(2)

COLOPHON
       This page is part of release 3.22 of the Linux man-pages project.  A description of the project,  and  informa-
       tion about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.



Linux                             2008-01-09                          UMASK(2)