สร้างไฟล์ชั่วคราว

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 ไฟล์อาจล้มเหลว ดังนั้นควรตรวจสอบการดำเนินการของไฟล์เสมอเพื่อหาข้อผิดพลาด
  • ควรปิดไฟล์เสมอเพื่อป้องกันการรั่วไหลของทรัพยากร
  • ทำความสะอาด: ลบไฟล์ชั่วคราวของคุณ (ถึงแม้ระบบมักจะทำเรื่องนี้ให้ แต่มันเป็นนิสัยที่ดี)

ดูเพิ่มเติม