Поделиться через


_umask_s

Задает маску разрешений для файлов по умолчанию. Здесь представлена версия _umask с усовершенствованной безопасностью, как описано в разделе Функции безопасности в CRT.

errno_t _umask_s(
   int mode,
   int * pOldMode
);

Параметры

  • [входящий] mode
    Параметр разрешений по умолчанию.

  • [исходящий] oldMode
    Предыдущее значение параметра разрешений.

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

Возвращает код ошибки, если Mode не определяет допустимый режим или указатель pOldMode имеет значение NULL.

Условия возникновения ошибки

mode

pOldMode

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

Содержимое oldMode

any

NULL

EINVAL

без изменений

недопустимый режим

any

EINVAL

без изменений

Если срабатывает какое-либо из приведенных условий, то вызывается обработчик недопустимого параметра, как описано в Проверка параметров. Если выполнение может быть продолжено, то _umask_s возвращает EINVAL и устанавливает errno в EINVAL.

Заметки

Функция _umask_s задает маску разрешений для файлов текущего процесса в режим, указанный в mode*.* Маска разрешений для файлов изменяет настройки разрешений новых файлов, созданных функциями _creat, _open или _sopen. Если бит в маске равен 1, соответствующий бит в запрошенном значении разрешения для файла устанавливается в 0 (запрещено). Если бит в маске равен 0, соответствующий бит остается без изменений. Настройка разрешений для нового файла не устанавливается до тех пор, пока файл не закрыт в первый раз.

Целочисленное выражение pmode содержит одну или обе следующих константы манифеста, определенных в SYS\STAT.H:

  • _S_IWRITE
    Запись разрешена.

  • _S_IREAD
    Чтение разрешено.

  • _S_IREAD | _S_IWRITE
    Чтение и запись разрешены.

Если предоставлены обе константы, они объединяются битовым оператором OR ( | ). Если аргумент mode равен _S_IREAD, чтение не разрешено (файл доступен только для записи). Если аргумент mode равен _S_IWRITE, запись не разрешена (файл доступен только для чтения). Например, если бит записи устанавливается в маске, то все новые файлы будут доступны только для чтения. Обратите внимание, что для операционных систем MS-DOS и Windows, все файлы доступны для чтения; невозможно предоставить им доступ только на запись. Поэтому установка бита чтения в _umask_s не влияет на режимы файла.

Если pmode - не сочетание одной из констант манифеста, или он содержит другой набор констант, функция просто игнорирует их.

Требования

Подпрограмма

Обязательный заголовок

_umask_s

<io.h> and <sys/stat.h> and <sys/types.h>

Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

Пример

// crt_umask_s.c
/* This program uses _umask_s to set
 * the file-permission mask so that all future
 * files will be created as read-only files.
 * It also displays the old mask.
 */

#include <sys/stat.h>
#include <sys/types.h>
#include <io.h>
#include <stdio.h>

int main( void )
{
   int oldmask, err;

   /* Create read-only files: */
   err = _umask_s( _S_IWRITE, &oldmask );
   if (err)
   {
      printf("Error setting the umask.\n");
      exit(1);
   }
   printf( "Oldmask = 0x%.4x\n", oldmask );
}
  

Эквивалент в .NET Framework

System::IO::File::SetAttributes

См. также

Ссылки

Обработка файлов

Низкоуровневый ввод-вывод

_chmod, _wchmod

_creat, _wcreat

_mkdir, _wmkdir

_open, _wopen

_umask