Sobes.tech
Junior — Middle

როგორ შეიძლება უზრუნველყოს ფაილის შექმნა მხოლოდ მისი არარსებობის შემთხვევაში?

sobes.tech AI

პასუხი AI-სგან

C/C++-ত, ফাইলটি কেবল তখনই তৈরি করা সম্ভব যখন এটি এখনও বিদ্যমান নয়, বিভিন্ন উপায়ে:

  1. POSIX সিস্টেম কল open এর মাধ্যমে ফাইল খোলার সময় O_CREAT | O_EXCL পতাকা ব্যবহার করে। O_EXCL পতাকা নিশ্চিত করে যে ফাইলটি কেবল তখনই তৈরি হবে যদি এটি এখনও না থাকে, অন্যথায় কলটি একটি ত্রুটির সাথে শেষ হবে।
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>

int fd = open("file.txt", O_CREAT | O_EXCL | O_WRONLY, 0644);
if (fd == -1) {
    perror("ফাইলটি ইতিমধ্যে বিদ্যমান বা ত্রুটি");
} else {
    // ফাইল সফলভাবে তৈরি হয়েছে
    close(fd);
}
  1. C++ মানক গ্রন্থাগারে <filesystem> ব্যবহার করে ফাইলের অস্তিত্ব পরীক্ষা করা যায় (C++17 থেকে) এবং যদি না থাকে তবে ফাইলটি তৈরি করুন:
#include <filesystem>
#include <fstream>

namespace fs = std::filesystem;

if (!fs::exists("file.txt")) {
    std::ofstream ofs("file.txt");
    // ফাইল তৈরি হয়েছে
}
  1. C-তে প্রথমে fopen দিয়ে ফাইলের অস্তিত্ব পরীক্ষা করুন, এবং যদি পাওয়া না যায় তবে লিখন মোডে খুলুন। তবে এই পদ্ধতি অ্যাটমিক নয় এবং মাল্টিথ্রেড পরিবেশে প্রতিযোগিতামূলক পরিস্থিতি সৃষ্টি করতে পারে।

সুতরাং, সবচেয়ে নির্ভরযোগ্য উপায় হল open ব্যবহার করে O_CREAT | O_EXCL পতাকা দিয়ে, কেবল তখনই ফাইলটি তৈরি করুন যদি এটি না থাকে।