• Giga@hdv-tech.com
  • 24H অনলাইন পরিষেবা:
    • 7189078c
    • sns03
    • 6660e33e
    • ইউটিউব 拷贝
    • ইনস্টাগ্রাম

    সি, ডকুমেন্ট রিডিং এবং রাইটিং

    পোস্টের সময়: আগস্ট-11-2023

    বর্ণনা করে কিভাবে সি প্রোগ্রামার একটি টেক্সট ফাইল বা বাইনারি ফাইল তৈরি করে, খোলে এবং বন্ধ করে।

    একটি ফাইল, মানে বাইটের একটি সিরিজ, তা একটি টেক্সট ফাইল হোক বা বাইনারি ফাইল হোক, সি ল্যাঙ্গুয়েজ, শুধুমাত্র শীর্ষ স্তরের ফাংশনগুলিতে অ্যাক্সেস প্রদান করে না, তবে স্টোরেজ ডিভাইসে ফাইলগুলি প্রক্রিয়া করার জন্য অন্তর্নিহিত (OS) কলও প্রদান করে। . এই অধ্যায়টি নথি ব্যবস্থাপনায় গুরুত্বপূর্ণ কলগুলি ব্যাখ্যা করবে।

    ওপেন-ফাইল

    সাধারণত একটি নতুন ফাইল তৈরি করতে বা একটি বিদ্যমান ফাইল খুলতে fopen () ফাংশন ব্যবহার করে, এই কলটি FILE ধরনের একটি বস্তুকে শুরু করে যাতে প্রবাহ নিয়ন্ত্রণের জন্য প্রয়োজনীয় সমস্ত তথ্য থাকে। এখানে এই ফাংশন কলের প্রোটোটাইপ রয়েছে:

    FILE *fopen ( const char * ফাইলের নাম , const char * মোড );

    এখানে ফাইলের নাম হল একটি ফাইলের নাম দেওয়ার জন্য একটি স্ট্রিং, অ্যাক্সেস মোডের মান নিম্নলিখিত মানগুলির মধ্যে একটি হতে পারে:

    প্যাটার্ন

    বর্ণনা

    r

    একটি বিদ্যমান পাঠ্য ফাইল খুলুন যা এটি পড়ার অনুমতি দেয়।

    w

    একটি পাঠ্য ফাইল খুলুন যা ফাইলটিতে লেখার অনুমতি দেয়। ফাইলটি বিদ্যমান না থাকলে, একটি নতুন ফাইল তৈরি করা হয়। এখানে, আপনার প্রোগ্রাম ফাইলের শুরু থেকে বিষয়বস্তু লেখে। ফাইলটি বিদ্যমান থাকলে, এটিকে শূন্য দৈর্ঘ্যে কেটে পুনরায় লেখা হবে।

    a

    একটি টেক্সট ফাইল খুলুন এবং একটি অ্যাপেন্ড মোডে ফাইলটিতে লিখুন। ফাইলটি বিদ্যমান না থাকলে, একটি নতুন ফাইল তৈরি করা হয়। এখানে, আপনার প্রোগ্রাম আপনার ইতিমধ্যে থাকা ফাইলগুলিতে বিষয়বস্তু যুক্ত করে।

    r+

    একটি পাঠ্য ফাইল খুলুন যা আপনাকে ফাইলটি পড়তে এবং লিখতে দেয়।

    w+

    একটি পাঠ্য ফাইল খুলুন যা আপনাকে ফাইলটি পড়তে এবং লিখতে দেয়। যদি ফাইলটি ইতিমধ্যে বিদ্যমান থাকে, তাহলে ফাইলটি শূন্য দৈর্ঘ্যে কাটা হয় এবং যদি ফাইলটি বিদ্যমান না থাকে তবে একটি নতুন ফাইল তৈরি করা হয়।

    a+

    একটি পাঠ্য ফাইল খুলুন যা আপনাকে ফাইলটি পড়তে এবং লিখতে দেয়। ফাইলটি বিদ্যমান না থাকলে, একটি নতুন ফাইল তৈরি করা হয়। রিড ফাইলের শুরুতে শুরু হয়, এবং লেখাটি শুধুমাত্র অ্যাপেন্ড মোডে থাকে।

    বাইনারি ফাইল প্রক্রিয়া করা হলে, উপরেরটি প্রতিস্থাপন করতে নিম্নলিখিত অ্যাক্সেস মোড ব্যবহার করুন:

    "rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

    বন্ধ ফাইল

    ফাইলটি বন্ধ করতে, অনুগ্রহ করে fclose() ফাংশনটি ব্যবহার করুন। ফাংশনের প্রোটোটাইপ নিম্নরূপ:

    int fclose ( FILE *fp );

    • ফাইলটি সফলভাবে বন্ধ হলে, fclose() ফাংশন শূন্য প্রদান করে এবং যদি ত্রুটিটি EOF প্রদান করে। এই ফাংশনটি আসলে, বাফার থেকে ডেটা সরিয়ে দেয়, ফাইলটি বন্ধ করে দেয় এবং সেই ফাইলের জন্য ব্যবহৃত সমস্ত মেমরি প্রকাশ করে। EOF হেডার ফাইল stdio.h এ সংজ্ঞায়িত একটি ধ্রুবক

    সি স্ট্যান্ডার্ড লাইব্রেরি অক্ষর দ্বারা বা একটি নির্দিষ্ট দৈর্ঘ্যের স্ট্রিং হিসাবে ফাইলগুলি পড়তে এবং লেখার জন্য বিভিন্ন ফাংশন সরবরাহ করে।

    ফাইলে লিখুন

    স্ট্রীমে অক্ষর লেখার জন্য এখানে সবচেয়ে সহজ ফাংশন রয়েছে:

    int fputc ( int c , FILE *fp );

    fputc() ফাংশনটি আউটপুট স্ট্রীমে প্যারামিটার c-এর অক্ষর মান লিখে দেয় যা fp নির্দেশ করে। যদি লেখাগুলি সফল হয় তবে এটি লিখিত অক্ষর এবং EOF প্রদান করে যদি একটি ত্রুটি ঘটে। স্ট্রীমের নাল দিয়ে শেষ হওয়া একটি স্ট্রিং লিখতে আপনি নিম্নলিখিত ফাংশনটি ব্যবহার করতে পারেন:

    int fputs ( const char *s , FILE *fp);

    fputs () ফাংশনটি আউটপুট স্ট্রীমে স্ট্রিং s লেখে যেখানে fp নির্দেশ করে। লেখা সফল হলে, এটি একটি নন-নেতিবাচক মান এবং একটি ত্রুটি ঘটলে EOF প্রদান করে। আপনি int fprintf এর ফাংশনটিও ব্যবহার করতে পারেন (FILE * fp, const char * বিন্যাস,...) ফাইলটিতে একটি স্ট্রিং লেখে। নিম্নলিখিত উদাহরণ চেষ্টা করুন:

    দ্রষ্টব্য: নিশ্চিত করুন যে আপনার কাছে একটি উপলব্ধ tmp ডিরেক্টরি আছে, এবং যদি এটি বিদ্যমান না থাকে, তাহলে আপনাকে প্রথমে আপনার কম্পিউটারে এটি তৈরি করতে হবে।

    / tmp সাধারণত লিনাক্স সিস্টেমে একটি অস্থায়ী ডিরেক্টরি। আপনি যদি উইন্ডোজ সিস্টেমে চালান, তাহলে আপনাকে স্থানীয় পরিবেশে বিদ্যমান একটি ডিরেক্টরিতে পরিবর্তন করতে হবে, যেমন: C: \ tmp, D: \ tmp ইত্যাদি।

    জীবন্ত উদাহরণ

    #অন্তর্ভুক্ত int main () { FILE *fp = NULL ; fp = fopen ("/tmp/test.txt", "w+"); fprintf (fp , "এটি fprintf...\n" এর জন্য পরীক্ষা করা হচ্ছে); fputs ("এটি fputs এর জন্য পরীক্ষা করা হচ্ছে...\n ", fp); fclose (fp); }

    যখন উপরের কোডটি কম্পাইল এবং এক্সিকিউট করা হয়, তখন এটি /tmp ডিরেক্টরিতে একটি নতুন ফাইল test.txt তৈরি করে। এবং দুটি ভিন্ন ফাংশন ব্যবহার করে দুটি লাইনে লেখে। এর পরে এই ফাইল পড়া যাক.

    ফাইলটি পড়ুন

    একটি ফাইল থেকে একটি একক অক্ষর পড়ার জন্য নিম্নলিখিত সহজ ফাংশন:

    int fgetc ( ফাইল * fp );

    fgetc() ফাংশন ইনপুট ফাইল থেকে একটি অক্ষর পড়ে যেখানে fp পয়েন্ট করে। রিটার্ন মান হল পঠিত অক্ষর এবং EOF যদি একটি ত্রুটি ঘটে। নিম্নলিখিত ফাংশন আপনাকে একটি স্ট্রিম থেকে একটি স্ট্রিং পড়তে অনুমতি দেয়:

    char *fgets ( char *buf , int n , FILE *fp);

    fgets() ফাংশনটি fp দ্বারা নির্দেশিত ইনপুট স্ট্রীম থেকে n-1 অক্ষর পড়ে। এটি পঠিত স্ট্রিংটিকে বাফার বুফে অনুলিপি করে এবং স্ট্রিংটি শেষ করতে শেষে একটি নাল অক্ষর যুক্ত করে।

    যদি এই ফাংশনটি শেষ অক্ষরটি পড়ার আগে একটি ভাঙা লাইন অক্ষর '\n' বা ফাইলের শেষের EOF-এর সম্মুখীন হয়, তবে লাইন বিরতি সহ শুধুমাত্র পঠিত অক্ষরগুলিতে ফিরে আসবে৷ ফাইল থেকে স্ট্রিং পড়ার জন্য আপনি int fscanf (FILE * fp, const char * বিন্যাস,...) ফাংশন ব্যবহার করতে পারেন, কিন্তু প্রথম স্থান এবং লাইন বিরতির সম্মুখীন হলে এটি পড়া বন্ধ করে দেয়।

    জীবন্ত উদাহরণ

    #অন্তর্ভুক্ত int main () { FILE *fp = NULL ; চর বাফ [255]; fp = fopen ("/tmp/test.txt", "r"); fscanf (fp , "%s ", buff); printf ("1: %s \n ", বাফ); fgets (বাফ , 255, (ফাইল *)fp); printf ("2: %s \n ", বাফ); fgets (বাফ , 255, (ফাইল *)fp ); printf ("3: %s \n ", বাফ); fclose (fp); }

    যখন উপরের কোডটি সংকলিত এবং কার্যকর করা হয়, এটি পূর্ববর্তী বিভাগে তৈরি করা ফাইলগুলি পড়ে, নিম্নলিখিত ফলাফলগুলি তৈরি করে:

    1: এই 2: fprintf এর জন্য পরীক্ষা করা হচ্ছে...

    3: এটি fputs জন্য পরীক্ষা করা হচ্ছে...

    প্রথমত, fscanf() এর মেথড শুধুমাত্র এইটি পড়ে। কারণ এটি পিছনে একটি স্থানের সম্মুখীন হয়। দ্বিতীয়ত, লাইনের শেষ পর্যন্ত অবশিষ্ট অংশ পড়তে functon fgets() কল করুন। অবশেষে, দ্বিতীয় সারিটি সম্পূর্ণরূপে পড়তে fgets() কল করুন।

    বাইনারি I/O ফাংশন

    বাইনারি ইনপুট এবং আউটপুটের জন্য নিম্নলিখিত দুটি ফাংশন ব্যবহার করা হয়:

    size_t fread (void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file ); size_t fwrite (const void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file );

    উভয় ফাংশন স্টোরেজ ব্লক-সাধারণত অ্যারে বা কাঠামোর জন্য পড়া এবং লেখা হয়।

    উপরে C ফাইল রিডিং এবং রাইটিং HDV Phoelectron Technology Ltd. এর অন্তর্গত, একটি সফ্টওয়্যার প্রযুক্তিগত অপারেশন। এবং নেটওয়ার্ক সম্পর্কিত সরঞ্জামের জন্য কোম্পানি (যেমন: এসিওএনইউ/ যোগাযোগওএনইউ/ বুদ্ধিমানওএনইউ/ ফাইবারওএনইউ, ইত্যাদি) একটি শক্তিশালী সফ্টওয়্যার দলকে একত্রিত করেছে, প্রতিটি গ্রাহকের জন্য যাদের প্রয়োজন তাদের একচেটিয়া চাহিদা কাস্টমাইজ করে, আমাদের পণ্যগুলিকে আরও বুদ্ধিমান এবং উন্নত করতে দিন।



    ওয়েব聊天