umask

Changes the current umask

&reftitle.description; `int` `umask` ``int``null```mask`&null;

`umask` sets PHP's umask to `mask` & 0777 and returns the old umask. When PHP is being used as a server module, the umask is restored when each request is finished.

&reftitle.parameters;

`mask`

- The new umask.

&reftitle.returnvalues;

If `mask` is &null;, `umask` simply returns the current umask otherwise the old umask is returned.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | `mask` is nullable now.

&reftitle.examples;

### `umask` example

    <?php
    $old = umask(0);
    chmod("/path/some_dir/some_file.txt", 0755);
    umask($old);

    // Checking
    if ($old != umask()) {
        die('An error occurred while changing back the umask');
    }
    ?>

&reftitle.notes;

Avoid using this function in multithreaded webservers. It is better to change the file permissions with `chmod` after creating the file. Using `umask` can lead to unexpected behavior of concurrently running scripts and the webserver itself because they all use the same umask.