Thuta Learning
C
AdvancedProgrammingbeginner

File I/O

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • File I/O ရဲ့C language နဲ့runtime behavior ကိုရှင်းပြနိုင်ရန်
  • Normal, boundary, invalid နဲ့failure cases စမ်းနိုင်ရန်
  • Warnings နဲ့sanitizers အသုံးပြုပြီးsafe C code ရေးနိုင်ရန်

Open အောင်ပြီးနောက်လည်း read, write နဲ့close operation များfail နိုင်သဖြင့်return status တိုင်းစစ်ပါ။

ပိုပြီးနားလည်ထားရမယ့် အချက်

C file I/O တွင်open mode, errors, partial reads/writes, buffering, text/binary differences နဲ့close result ကိုကိုင်ရပါတယ်။ Every `FILE *` operation ကိုstatus စစ်ပြီးcleanup path တစ်ခုတည်းထားပါ။

လက်တွေ့မှာ ဘယ်လိုအသုံးချမလဲ

Text file write/read round trip ကိုmissing permission, missing file နဲ့write/close errors ပါစမ်းနိုင်အောင်ရေးပါ။

ဒီသင်ခန်းစာပြီးရင်

c
#include <stdio.h>
#include <stdlib.h>

int main(void) {
    FILE *file = fopen("notes.txt", "w");
    if (file == NULL) { perror("notes.txt"); return EXIT_FAILURE; }

    int status = EXIT_SUCCESS;
    if (fputs("Safe C file I/O\n", file) == EOF) {
        perror("write");
        status = EXIT_FAILURE;
    }
    if (fclose(file) == EOF) {
        perror("close");
        status = EXIT_FAILURE;
    }
    return status;
}
You should see
notes.txt ထဲတွင် Safe C file I/O ရေးထားမည်။

ကိုယ်တိုင်စမ်းကြည့်ရန်

Text file write/read round trip ကိုmissing permission, missing file နဲ့write/close errors ပါစမ်းနိုင်အောင်ရေးပါ။

Memory/Safety သတိပေးချက်

`fopen` အောင်မအောင်မစစ်ဘဲnull FILE pointer သုံးခြင်းကundefined behavior ဖြစ်စေပါတယ်။

GNU C compiler diagnosticsGNU Project

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • `fopen` အောင်မအောင်မစစ်ဘဲnull FILE pointer သုံးခြင်းကundefined behavior ဖြစ်စေပါတယ်။
  • Output တစ်ကြိမ်မှန်ရုံဖြင့် bounds, lifetime, overflow နဲ့ownership အားလုံးမှန်ပြီဟုယူဆခြင်း။

လက်တွေ့လေ့ကျင့်ခန်း

Text file write/read round trip ကိုmissing permission, missing file နဲ့write/close errors ပါစမ်းနိုင်အောင်ရေးပါ။

You'll know it worked when: File ရေးအောင်မည် သို့မဟုတ်ရှင်းလင်းသောerror ပြန်မည်။