У дескриптора каталога появился способ получить второй независимый

20.09.2026

У дескриптора каталога появился метод получения второго независимого дескриптора на тот же каталог. Метод был задуман давно, но при его реализации утрачен.

Какая задача решается

Дескриптор каталога — это ресурс, который читает записи и позволяет менять рабочий каталог процесса. Передать его другому коду напрямую нельзя: дескрипторы не копируются, иначе появился бы класс ошибок с двойным закрытием.

Но иногда нужен второй независимый дескриптор. Например, чтобы фоновая задача обходила каталог, пока основной код смотрит на другой каталог.

Обращение к системе с просьбой получить второй дескриптор работало, но было неприятно: требовалось системное приведение строк, и ошибки обрабатывались вручную.

Новый метод

Метод делает то же самое, но в рамках обычного безопасного кода, с той же обработкой ошибок, что у остальных файловых операций.

Оригинал

add Dir::try_clone

Упоминаний: 1 · Просмотров: 2