Можем ли мы реализовать возможность безопасного создания временных файлов в C++23?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Можем ли мы реализовать возможность безопасного создания временных файлов в C++23?

Сообщение Anonymous »

После прочтения обзора моего собственного кода, ответа о boost::filesystem::unique_path, еще одного ответа о unique_path и его ссылок, документации о tmpnam и его Linux man страница и некоторые другие связанные с этим вещи, у меня сложилось впечатление, что с C++23 у нас есть все необходимое для обеспечения безопасной реализации создания временных файлов, только с использованием стандартной библиотеки C++23.
Под безопасным я, среди прочего, подразумеваю реализацию, которая не будет иметь известных уязвимостей безопасности tmpnam и boost::filesystem::unique_path.
Например, мы могли бы реализовать класс temp_file, конструктор которого будет генерировать 128-битное случайное имя файла и открывать файл с этим именем, расположенный в std::filesystem::temp_directory_path() в эксклюзивном режиме (

Код: Выделить всё

std::ios::noreplace
), чей деструктор закроет файл и удалит его, и чья функция-член потока вернет ссылку на поток ввода/вывода открытого файла.
Может такая реализация, если она правильная, может рассматриваться как безопасное средство для создания и использования временных файлов, или я упускаю некоторые важные соображения, и в таком случае, каковы эти соображения?

Подробнее здесь: https://stackoverflow.com/questions/785 ... les-in-c23
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»