umask()

Установить маску создания файлового режима для процесса

Прототип:

#include <sys/types.h>
#include <sys/stat.h>
mode_t umask( mode_t cmask );

Аргументы:

cmask
Новая маска режима доступа при создании файла; это права доступа, которые не нужно устанавливать, когда процесс создаёт файл. Маска является комбинацией этих бит: S_IR*, S_IW*, S_IX*.

Библиотека:

libc

Описание:

Функция umask() устанавливает cmask в качестве маски режима доступа для создания файлов процессом и возвращает предыдущее значение маски. Используются только биты доступа файла (определены в <sys/stat.h>).

Маска режима доступа используется при вызове creat(), mkdir(), mkfifo(), и open(), для отключения битов доступа в mode. Биты установленные в cmask очищаются в режиме доступа создаваемого файла.

Возвращаемое значение:

Предыдущее значение маски создания файлового режима.

Примеры:

/*
* Установить umask на RW для владельца, группы; R для остальных
*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
int main( void )
{
mode_t omask;
mode_t nmask;
nmask = S_IRUSR | S_IWUSR | /* owner read write */
S_IRGRP | S_IWGRP | /* group read write */
S_IROTH; /* other read */
omask = umask( nmask );
printf( "Mask changed from %o to %o\n", omask, nmask );
return (EXIT_SUCCESS);
}

Классификация:

POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

struct stat, chmod(), creat(), mkdir(), mkfifo(), open(), stat()




Предыдущий раздел: Описание API системной библиотеки