C++:
Створення тимчасового файлу
Як зробити:
#include <iostream>
#include <filesystem>
#include <fstream>
int main() {
// Створення унікального тимчасового файлу в тимчасовій директорії
std::filesystem::path temp = std::filesystem::temp_directory_path() /= "my_tempfile_XXXXXX";
// Використання mkstemp для безпечного створення тимчасового файлу
int fd = mkstemp(temp.data());
if (fd == -1) {
std::cerr << "Не можу створити тимчасовий файл!\n";
return 1;
}
// Робота з файлом через файловий потік
std::ofstream temp_file(temp);
temp_file << "Привіт, це тимчасовий файл!" << std::endl;
temp_file.close();
// Вивід шляху до тимчасового файлу
std::cout << "Тимчасовий файл створено: " << temp << std::endl;
// Прибирання: закриття файлового дескриптора і видалення файлу
close(fd);
std::filesystem::remove(temp);
return 0;
}
Поглиблений Розділ:
Створення тимчасового файлу - стандартна задача в UNIX-подібних системах, яка історично вирішувалася функцією tmpfile()
та макросом tmpnam()
, але вони мають проблеми з безпекою через можливі змагання станів (race conditions). mkstemp()
мінімізує цей ризик, автоматично замінюючи XXXXXX
на унікальний набір символів та відкриваючи файл без можливості перехоплення. В C++, зі стандартом C++17, std::filesystem
ідеально підходить для роботи з файловою системою, оскільки вона надає системно-незалежний інтерфейс. Тимчасові файли важливі для зберігання тимчасових даних без зайвого забруднення файлової системи і можуть бути видалені без сліду після використання.