UMASK(2)                         System Calls                         UMASK(2)


       umask - set file creation mode mask


       #include <sys/stat.h>

       mode_t umask (mode_t numask);


       The  umask routine sets the process's file mode creation mask to numask
       and returns the previous value of the mask.   The  9  low-order  access
       permission  bits of numask are used by system calls, including open(2),
       mkdir(2), and mkfifo(2), to turn off corresponding  bits  requested  in
       file mode.  (See chmod(2)).  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.

       Because the GNO kernel does not currently implement a  mask,  the  mask
       value  is maintained into child processes through the environment vari-
       able UMASK, which is assumed to be a string representing an octal  mask
       value.   For  shells such as gsh(1) which don't support a umask builtin
       command, the user's default mask may be controlled by setting the UMASK
       environment variable.


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


       The  umask function will never return an error condition, however it is
       possible that the setenv(3) call used in  the  GNO  implementation  may
       fail.   To detect this condition, the user must set errno to zero prior
       to calling umask, and check it's value afterward.  Under  most  circum-
       stances  this  possible  error  condition may be ignored; the only side
       effect of setenv failing in this case will be that the value of  numask
       will not be maintained after an execve(2).


       chmod(2), mknod(2), open(2)


       The  umask function call is expected to conform to IEEE Std 1003.1-1988

GNO                            14 December 1996                       UMASK(2)

Man(1) output converted with man2html