umask — Изменяет текущую маску прав доступа для вновь созданных файлов и каталогов (umask)
umask: Изменяет текущую маску прав доступа для вновь созданных файлов и каталогов (umask). Контекст: расширение или раздел Файловая система. Различительные признаки: umask; необязательные $mask; результат int; задача «создание»; профиль «файловый ввод-вывод».
Материал подготовлен автоматизированно по структурным фактам и прошёл программные шлюзы качества; индивидуальная ручная редактура каждой страницы не заявляется. Методика подготовки и ограничения.
int umask(int|null $mask = null)Назначение umask
umask: Изменяет текущую маску прав доступа для вновь созданных файлов и каталогов (umask). Справочная сущность относится к разделу «Файловая система». Используйте её, когда это краткое назначение совпадает с задачей приложения; фактическое поведение подтверждайте сигнатурой и проверочным сценарием ниже.
Чем отличается umask
Это процедурная функция раздела «Файловая система». Её отличают имя umask, контракт «необязательные $mask» и объявленный результат int; эти три признака нужно сверять вместе при выборе похожего API.
Смысловое направление umask
Смысловое направление umask — «создание». В прикладном коде определите владельца созданного значения и момент освобождения связанных ресурсов. Контрольный набор для этой операции: проверьте повторное создание и конфликт уже существующего объекта. Такой акцент отделяет umask от API с похожей сигнатурой, но противоположным действием или другим жизненным циклом.
Сигнатура umask
Структурная запись: int umask(int|null $mask = null). В ней 1 параметр: необязательные $mask. Результат объявлен как int; перед переносом кода сопоставьте сигнатуру с версией PHP и составом расширений проекта.
Параметры umask
Порядок и роли аргументов по сигнатуре: 1. $mask — int|null, необязателен, default null. Для umask фиксируйте фактические типы входа в тесте и отдельно проверяйте значения на границе допустимого диапазона.
Контроль входных данных для umask
1) int|null $mask — необязательный: испытайте корректный, пустой и синтаксически ошибочный шаблон или формат.
Результат umask
umask объявляет результат типа int. Числовой результат umask имеет тип int. Не назначайте специальный смысл нулю или отрицательному значению, пока он не следует из документированного контракта.
Проверочный сценарий для umask
Убедитесь, что раздел «Файловая система» доступен в целевой сборке PHP. Сначала выполните контрольный вызов без аргументов. Затем отдельно добавьте необязательные параметры int|null $mask=null, чтобы увидеть влияние значений по умолчанию. Для профиля «файловый ввод-вывод» важно нормализовать путь и ограничить доступ разрешённой областью; негативный сценарий должен проверить отсутствие файла, права, пустой поток и частичное чтение.
Интеграция umask в проект
Проверку доступности umask и преобразование входных значений разместите у границы модуля «Файловая система». Для профиля «файловый ввод-вывод» вынесите обработку отказа в одну ветку и добавьте к журналу имя операции, версию PHP и безопасные метаданные входа. Не применяйте оператор @: он скрывает диагностический сигнал, необходимый для разбора сбоя. Повторный вызов разрешайте только после явной проверки, что операция umask не создаёт нежелательный повторный эффект в вашем сценарии.
Диагностика umask
Сначала запишите точную сигнатуру int umask(int|null $mask = null) и фактические типы переданных значений. Затем подтвердите загрузку расширения «Файловая система» в той же среде, где выполняется umask. Если результат неожиданен, сравните его тип с int и воспроизведите вызов на минимальном входе без подавления предупреждений. После исправления повторите штатный и граничный сценарии, чтобы исключить маскировку ошибки случайным успешным результатом.
Границы применения
Для категории «файловый ввод-вывод» применяйте отдельный негативный тест: проверить отсутствие файла, права, пустой поток и частичное чтение. В production-коде важно нормализовать путь и ограничить доступ разрешённой областью. Исходные предупреждения и примечания не копируются на эту страницу: перед решением, влияющим на совместимость или безопасность, сверяйте поведение в целевой версии PHP.
Когда выбирать umask
Выбор umask оправдан, когда одновременно выполнены три условия: 1) в сборке доступно расширение «Файловая система»; 2) сигнатура содержит 1 аргумент: обязательных 0, необязательных 1; 3) вызывающему коду нужен результат int и действие «создание». Для профиля «файловый ввод-вывод» до интеграции отдельно подтвердите применимость правила: «undefined». Если хотя бы один пункт не выполняется, сравните контракт с pclose: у него другое назначение, владелец или набор входных данных.
Сравнение umask с соседними API
Для umask базовый ориентир: изменяет текущую маску прав доступа для вновь созданных файлов и каталогов (umask); необязательные $mask; результат int. Сопоставление с опубликованными соседями: pclose: закрывает файловый указатель процесса; вход — обязательные $handle; результат — int. fpassthru: выводит все оставшиеся данные из файлового указателя; вход — обязательные $stream; результат — int. fseek: перемещает позицию файлового указателя; вход — обязательные $stream, $offset; необязательные $whence; результат — int. Выбор делайте по различиям владельца, контракта и жизненного цикла, а не по сходству имени.
Версии и ограничения
В структурной истории исходной записи отмечены версии: 8.0.0. umask сверена по закреплённой ревизии php/doc-ru. Перед обновлением PHP повторите тесты типов, предупреждений и граничных значений для этой сущности. Не переносите выводы между версиями без повторного запуска минимального воспроизводимого примера для umask.
Связанные материалы
Источники и проверка
- PHP Documentation Group — структурный источник, без внешней ссылки
- creativecommons.org — условия лицензии
Страница составлена самостоятельно по структурным фактам: имени сущности, сигнатуре, типам и версии. Длинные фрагменты исходной документации не публикуются. Структурный источник: PHP Documentation Group / php-doc-ru, ревизия 5192f2d8cd6b6f28961ac2ff7f9bd5266c666972, лицензия CC BY 3.0 или более поздняя. Структура и практические пояснения изменены; проект не является официальным сайтом PHP.
Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.