C++:
สร้างไฟล์ชั่วคราว
วิธีการ:
นี่คือวิธีการสร้างและใช้ไฟล์ชั่วคราวใน C++ ปัจจุบัน:
#include <cstdio>
#include <filesystem>
#include <iostream>
int main() {
// สร้างไฟล์ชั่วคราวที่ไม่ซ้ำใครโดยใช้ไลบรารีระบบไฟล์
std::filesystem::path temp_path = std::filesystem::temp_directory_path() /= std::tmpnam(nullptr);
// เปิดไฟล์ชั่วคราว
std::FILE* temp_file = std::fopen(temp_path.c_str(), "w+");
if (!temp_file) {
std::perror("การเปิดไฟล์ล้มเหลว");
return EXIT_FAILURE;
}
// เขียนข้อมูลบางอย่างลงไป
std::fputs("Hello, Temp World!\n", temp_file);
// อย่าลืมปิดไฟล์เสมอ
std::fclose(temp_file);
// แสดงทางเดินของไฟล์ชั่วคราวของเรา
std::cout << "สร้างไฟล์ชั่วคราวที่: " << temp_path << std::endl;
// การทำความสะอาด: ลบไฟล์ชั่วคราว
std::filesystem::remove(temp_path);
return EXIT_SUCCESS;
}
ตัวอย่างผลลัพธ์ (ทางเดินจริงอาจแตกต่างกัน):
สร้างไฟล์ชั่วคราวที่: /tmp/abc123
การศึกษาลึก
ไฟล์ชั่วคราวเป็นมือง่ายในกรณีเช่นการบันทึกสถานะ, การเรียงข้อมูลชุดใหญ่, หรือการจัดการผลลัพธ์ที่ไม่จำเป็นต้องคงอยู่ ในอดีต, ไฟล์ชั่วคราวถูกสร้างในไดเรกทอรีที่มีร่วมกัน (เช่น /tmp
บนระบบ Unix) โดยใช้วิธีการตั้งชื่อง่ายๆ ซึ่งเสี่ยงต่อการชนกัน ภาษา C++ สมัยใหม่ใช้ไลบรารี <filesystem>
เพื่อหลีกเลี่ยงปัญหาดังกล่าว
ทางเลือกหนึ่ง ได้แก่ การใช้พื้นที่เก็บชั่วคราวบน RAM (เช่น tmpfs ในระบบที่คล้าย Unix ส่วนใหญ่) หรือ blobs ฐานข้อมูล วิธีการเหล่านี้ช่วยเก็บข้อมูลชั่วคราวไว้ในหน่วยความจำหรือระบบที่จัดการได้ ลดภาระ I/O และเพิ่มประสิทธิภาพ
ในด้านการดำเนินงาน, จำไว้ว่า:
- การ I/O ไฟล์อาจล้มเหลว ดังนั้นควรตรวจสอบการดำเนินการของไฟล์เสมอเพื่อหาข้อผิดพลาด
- ควรปิดไฟล์เสมอเพื่อป้องกันการรั่วไหลของทรัพยากร
- ทำความสะอาด: ลบไฟล์ชั่วคราวของคุณ (ถึงแม้ระบบมักจะทำเรื่องนี้ให้ แต่มันเป็นนิสัยที่ดี)