Книга: Программирование для Linux. Профессиональный подход
2.1.7. Временные файлы
2.1.7. Временные файлы
Иногда программе требуется создать временный файл, например для промежуточного хранения большого объема данных или для передачи данных другой программе. В системах GNU/Linux временные файлы хранятся в каталоге /tmp
. Работая с временными файлами, необходимо помнить о следующих ловушках.
? Одновременно может быть запущено несколько экземпляров программы (одним и тем же пользователем или разными пользователями). Все они должны использовать разные имена временных файлов, чтобы не было конфликтов.
? Права доступа к временным файлам должны задаваться таким образом, чтобы неавторизованные пользователи не могли влиять на работу программы путем модификации или замены временного файла.
? Имена временных файлов должны генерироваться так, чтобы посторонние пользователи не могли их предугадать. В противном случае хакер может воспользоваться задержкой между проверкой факта использования данного имени файла и открытием нового временного файла.
В Linux имеются функции mkstemp()
и tmpfile()
, решающие все вышеперечисленные проблемы. Выбор между ними делается на основании того, должен ли временный файл передаваться другой программе и какие функции ввода-вывода будут применяться при работе с файлом: низкоуровневые (read()
, write()
и т.д.) или потоковые (fopen()
, fprintf()
и т.д.).
- 1.1.3. Исполняемые файлы
- 12.3. Временные файлы
- Временные файлы
- 7.2.6.1. Временные файлы
- Размер страницы базы данных
- Исключения и обработчики исключений
- 4.4. Типичные ошибки распределения прав
- Освобождение места на диске
- Глава 6 Общие библиотечные интерфейсы — часть 1
- Глава 12 Общие библиотечные интерфейсы — часть 2
- 12.9. Рекомендуемая литература
- Удаление ненужных временных файлов с жесткого диска