• Giga@hdv-tech.com
  • 24H ଅନଲାଇନ୍ ସେବା:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • ଇନଷ୍ଟାଗ୍ରାମ

    C, ଡକ୍ୟୁମେଣ୍ଟ୍ ପଠନ ଏବଂ ଲେଖା |

    ପୋଷ୍ଟ ସମୟ: ଅଗଷ୍ଟ -11-2023 |

    C ପ୍ରୋଗ୍ରାମର୍ କିପରି ଏକ ଟେକ୍ସଟ୍ ଫାଇଲ୍, କିମ୍ବା ଏକ ବାଇନାରୀ ଫାଇଲ୍ ସୃଷ୍ଟି କରେ, ଖୋଲିବ ଏବଂ ବନ୍ଦ କରେ ତାହା ବର୍ଣ୍ଣନା କରେ |

    ଏକ ଫାଇଲ୍, ଅର୍ଥ ବାଇଟ୍ ର ଏକ କ୍ରମ, ଏହା ଏକ ପାଠ୍ୟ ଫାଇଲ୍ ହେଉ କିମ୍ବା ବାଇନାରୀ ଫାଇଲ୍, ସି ଭାଷା, କେବଳ ଉପର ସ୍ତରର କାର୍ଯ୍ୟଗୁଡ଼ିକୁ ପ୍ରବେଶ ପ୍ରଦାନ କରେ ନାହିଁ, ବରଂ ସଂରକ୍ଷଣ ଉପକରଣରେ ଫାଇଲଗୁଡ଼ିକୁ ପ୍ରକ୍ରିୟାକରଣ ପାଇଁ ଅନ୍ତର୍ନିହିତ (OS) କଲ୍ ମଧ୍ୟ ପ୍ରଦାନ କରେ | । ଏହି ଅଧ୍ୟାୟଟି ଡକ୍ୟୁମେଣ୍ଟ ପରିଚାଳନାରେ ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ କଲ୍ଗୁଡ଼ିକୁ ବ୍ୟାଖ୍ୟା କରିବ |

    ଖୋଲା ଫାଇଲ୍ |

    ସାଧାରଣତ a ଏକ ନୂତନ ଫାଇଲ୍ ସୃଷ୍ଟି କରିବାକୁ କିମ୍ବା ଏକ ବିଦ୍ୟମାନ ଫାଇଲ୍ ଖୋଲିବା ପାଇଁ ଫୋପେନ୍ () ଫଙ୍କସନ୍ ବ୍ୟବହାର କରି, ଏହି କଲ୍ FILE ପ୍ରକାରର ଏକ ବସ୍ତୁକୁ ଆରମ୍ଭ କରିଥାଏ ଯାହାକି ପ୍ରବାହକୁ ନିୟନ୍ତ୍ରଣ କରିବା ପାଇଁ ସମସ୍ତ ଆବଶ୍ୟକୀୟ ସୂଚନା ଧାରଣ କରିଥାଏ | ଏହି ଫଙ୍କସନ୍ କଲ୍ ର ପ୍ରୋଟୋଟାଇପ୍ ଏଠାରେ ଅଛି:

    FILE * fopen (const char * filename, const char * mode);

    ଏଠାରେ ଫାଇଲ୍ ନାମ ହେଉଛି ଏକ ଫାଇଲ୍ ନାମ କରିବା ପାଇଁ ଏକ ଷ୍ଟ୍ରିଙ୍ଗ୍, ଆକ୍ସେସ୍ ମୋଡ୍ ର ମୂଲ୍ୟ ନିମ୍ନଲିଖିତ ମୂଲ୍ୟଗୁଡ଼ିକ ମଧ୍ୟରୁ ଗୋଟିଏ ହୋଇପାରେ |

    ନମୁନା

    ବର୍ଣ୍ଣନା

    r

    ଏକ ବିଦ୍ୟମାନ ପାଠ୍ୟ ଫାଇଲ୍ ଖୋଲନ୍ତୁ ଯାହା ଏହାକୁ ପ read ିବାକୁ ଅନୁମତି ଦିଏ |

    w

    ଏକ ଟେକ୍ସଟ୍ ଫାଇଲ୍ ଖୋଲନ୍ତୁ ଯାହା ଫାଇଲ୍ କୁ ଲେଖିବାକୁ ଅନୁମତି ଦିଏ | ଯଦି ଫାଇଲ୍ ବିଦ୍ୟମାନ ନାହିଁ, ଏକ ନୂତନ ଫାଇଲ୍ ସୃଷ୍ଟି ହୁଏ | ଏଠାରେ, ଆପଣଙ୍କର ପ୍ରୋଗ୍ରାମ୍ ଫାଇଲ୍ ଆରମ୍ଭରୁ ବିଷୟବସ୍ତୁ ଲେଖେ | ଯଦି ଫାଇଲ୍ ବିଦ୍ୟମାନ ଅଛି, ଏହା ଶୂନ୍ୟ ଦ length ର୍ଘ୍ୟରେ ଛୋଟ ହୋଇ ପୁନ written ଲେଖାଯିବ |

    a

    ଏକ ଟେକ୍ସଟ୍ ଫାଇଲ୍ ଖୋଲ ଏବଂ ଏକ ଆପେଣ୍ଡ୍ ମୋଡ୍ ରେ ଫାଇଲ୍ କୁ ଲେଖ | ଯଦି ଫାଇଲ୍ ବିଦ୍ୟମାନ ନାହିଁ, ଏକ ନୂତନ ଫାଇଲ୍ ସୃଷ୍ଟି ହୁଏ | ଏଠାରେ, ଆପଣଙ୍କର ପ୍ରୋଗ୍ରାମ୍ ଆପଣଙ୍କ ପାଖରେ ଥିବା ଫାଇଲଗୁଡିକରେ ବିଷୟବସ୍ତୁ ଯୋଡିଥାଏ |

    r+

    ଏକ ଟେକ୍ସଟ୍ ଫାଇଲ୍ ଖୋଲନ୍ତୁ ଯାହା ଆପଣଙ୍କୁ ଫାଇଲ୍ ପ read ିବା ଏବଂ ଲେଖିବା ପାଇଁ ଅନୁମତି ଦିଏ |

    w+

    ଏକ ଟେକ୍ସଟ୍ ଫାଇଲ୍ ଖୋଲନ୍ତୁ ଯାହା ଆପଣଙ୍କୁ ଫାଇଲ୍ ପ read ିବା ଏବଂ ଲେଖିବା ପାଇଁ ଅନୁମତି ଦିଏ | ଯଦି ଫାଇଲ୍ ପୂର୍ବରୁ ବିଦ୍ୟମାନ ଅଛି, ଫାଇଲ୍ ଶୂନ୍ୟ ଦ length ର୍ଘ୍ୟରେ ଛୋଟ ହୋଇଛି, ଏବଂ ଯଦି ଫାଇଲ୍ ନାହିଁ, ଏକ ନୂତନ ଫାଇଲ୍ ସୃଷ୍ଟି ହେବ |

    a+

    ଏକ ଟେକ୍ସଟ୍ ଫାଇଲ୍ ଖୋଲନ୍ତୁ ଯାହା ଆପଣଙ୍କୁ ଫାଇଲ୍ ପ read ିବା ଏବଂ ଲେଖିବା ପାଇଁ ଅନୁମତି ଦିଏ | ଯଦି ଫାଇଲ୍ ବିଦ୍ୟମାନ ନାହିଁ, ଏକ ନୂତନ ଫାଇଲ୍ ସୃଷ୍ଟି ହୁଏ | ପ read ଼ିବା ଫାଇଲର ଆରମ୍ଭରେ ଆରମ୍ଭ ହୁଏ, ଏବଂ ଲେଖା କେବଳ ଆପେଣ୍ଡ ମୋଡରେ ଅଛି |

    ଯଦି ବାଇନାରୀ ଫାଇଲ୍ ପ୍ରକ୍ରିୟାକରଣ ହୁଏ, ଉପରୋକ୍ତ ସ୍ଥାନାନ୍ତର କରିବାକୁ ନିମ୍ନଲିଖିତ ପ୍ରବେଶ ମୋଡ୍ ବ୍ୟବହାର କରନ୍ତୁ:

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

    ବନ୍ଦ ଫାଇଲ୍ |

    ଫାଇଲ୍ ବନ୍ଦ କରିବାକୁ, ଦୟାକରି fclose () ଫଙ୍କସନ୍ ବ୍ୟବହାର କରନ୍ତୁ | କାର୍ଯ୍ୟର ପ୍ରୋଟୋଟାଇପ୍ ନିମ୍ନଲିଖିତ ଅଟେ:

    int fclose (FILE * fp);

    • ଯଦି ଫାଇଲ ସଫଳତାର ସହିତ ବନ୍ଦ ହୋଇଯାଏ, ତେବେ fclose () ଫଙ୍କସନ୍ ଶୂନ ଫେରସ୍ତ କରେ, ଏବଂ ଯଦି ତ୍ରୁଟି EOF ଫେରସ୍ତ କରେ | ଏହି ଫଙ୍କସନ୍, ବାସ୍ତବରେ, ବଫର୍ ଠାରୁ ତଥ୍ୟ ଅପସାରଣ କରେ, ଫାଇଲ୍ ବନ୍ଦ କରେ ଏବଂ ସେହି ଫାଇଲ୍ ପାଇଁ ବ୍ୟବହୃତ ସମସ୍ତ ମେମୋରୀକୁ ମୁକ୍ତ କରେ | EOF ହେଡର୍ ଫାଇଲ୍ stdio.h ରେ ଏକ ସ୍ଥିର ପରିଭାଷିତ |

    ଅକ୍ଷରଗୁଡ଼ିକ ଦ୍ୱାରା କିମ୍ବା ଏକ ସ୍ଥିର-ଲମ୍ବ ଷ୍ଟ୍ରିଙ୍ଗ୍ ଭାବରେ ଫାଇଲଗୁଡ଼ିକୁ ପ read ିବା ଏବଂ ଲେଖିବା ପାଇଁ C ମାନକ ଲାଇବ୍ରେରୀ ବିଭିନ୍ନ କାର୍ଯ୍ୟ ପ୍ରଦାନ କରିଥାଏ |

    ଫାଇଲ୍ କୁ ଲେଖ |

    ଷ୍ଟ୍ରିମ୍ ରେ ଅକ୍ଷର ଲେଖିବା ପାଇଁ ଏଠାରେ ସରଳ କାର୍ଯ୍ୟଗୁଡ଼ିକ ଅଛି:

    int fputc (int c, FILE * fp);

    Fputc () ଫଙ୍କସନ୍, fp କୁ ସୂଚୀତ କରୁଥିବା ଆଉଟପୁଟ୍ ଷ୍ଟ୍ରିମ୍ ରେ ପାରାମିଟର c ର ଅକ୍ଷର ମୂଲ୍ୟ ଲେଖେ | ଯଦି ଲେଖା ସଫଳ ହୁଏ, ଯଦି ଏକ ତ୍ରୁଟି ଘଟେ ତେବେ ଏହା ଲିଖିତ ବର୍ଣ୍ଣ ଏବଂ EOF ଫେରସ୍ତ କରେ | ଷ୍ଟ୍ରିମ୍ କୁ ଏକ ନଲ୍ ସହିତ ସମାପ୍ତ ହେଉଥିବା ଏକ ଷ୍ଟ୍ରିଙ୍ଗ୍ ଲେଖିବା ପାଇଁ ଆପଣ ନିମ୍ନଲିଖିତ କାର୍ଯ୍ୟ ବ୍ୟବହାର କରିପାରିବେ:

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

    ଫଙ୍କସନ୍ () ଫଙ୍କସନ୍, ଷ୍ଟ୍ରିଙ୍ଗ୍ s କୁ ଆଉଟପୁଟ୍ ଷ୍ଟ୍ରିମ୍ କୁ ଲେଖେ ଯେଉଁଠାରେ fp ସୂଚିତ କରେ | ଯଦି ଲେଖା ସଫଳ ହୁଏ, ଯଦି ଏକ ତ୍ରୁଟି ଘଟେ ତେବେ ଏହା ଏକ ନକାରାତ୍ମକ ମୂଲ୍ୟ ଏବଂ EOF ଫେରସ୍ତ କରେ | ଆପଣ int fprintf (FILE * fp, const char * format, ...) ର କାର୍ଯ୍ୟକୁ ମଧ୍ୟ ବ୍ୟବହାର କରିପାରିବେ | ନିମ୍ନଲିଖିତ ଉଦାହରଣକୁ ଚେଷ୍ଟା କରନ୍ତୁ:

    ଟିପନ୍ତୁ: ନିଶ୍ଚିତ କରନ୍ତୁ ଯେ ଆପଣଙ୍କର ଏକ ଉପଲବ୍ଧ tmp ଡିରେକ୍ଟୋରୀ ଅଛି, ଏବଂ ଯଦି ଏହା ନାହିଁ, ତେବେ ଆପଣଙ୍କୁ ପ୍ରଥମେ ଏହାକୁ ନିଜ କମ୍ପ୍ୟୁଟରରେ ସୃଷ୍ଟି କରିବାକୁ ପଡିବ |

    / tmp ସାଧାରଣତ the ଲିନକ୍ସ ସିଷ୍ଟମରେ ଏକ ଅସ୍ଥାୟୀ ଡିରେକ୍ଟୋରୀ | ଯଦି ଆପଣ ୱିଣ୍ଡୋଜ୍ ସିଷ୍ଟମରେ ଚଲାନ୍ତି, ତେବେ ଆପଣଙ୍କୁ ଏହାକୁ ସ୍ଥାନୀୟ ପରିବେଶରେ ଏକ ବିଦ୍ୟମାନ ଡିରେକ୍ଟୋରୀରେ ରୂପାନ୍ତର କରିବାକୁ ପଡିବ, ଯେପରିକି: 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); }

    ଯେତେବେଳେ ଉପରୋକ୍ତ କୋଡ୍ ସଂକଳିତ ଏବଂ ଏକଜେକ୍ୟୁଟ୍ ହୁଏ, ଏହା ଏକ ନୂଆ ଫାଇଲ୍ test.txt inthe / tmp ଡିରେକ୍ଟୋରୀ ସୃଷ୍ଟି କରେ | ଏବଂ ଦୁଇଟି ଭିନ୍ନ କାର୍ଯ୍ୟ ବ୍ୟବହାର କରି ଦୁଇଟି ଧାଡିରେ ଲେଖନ୍ତି | ଚାଲ ପରେ ଏହି ଫାଇଲ୍ ପ read ିବା |

    ଫାଇଲ୍ ପ Read ଼ନ୍ତୁ |

    ଫାଇଲରୁ ଗୋଟିଏ ଅକ୍ଷର ପ to ିବା ପାଇଁ ନିମ୍ନଲିଖିତ ହେଉଛି ସରଳ କାର୍ଯ୍ୟ:

    int fgetc (FILE * fp);

    Fgetc () ଫଙ୍କସନ୍ ଇନପୁଟ୍ ଫାଇଲ୍ ରୁ fp ପଏଣ୍ଟ୍ କରୁଥିବା ଏକ ବର୍ଣ୍ଣ ପ read େ | ରିଟର୍ନ ମୂଲ୍ୟ ହେଉଛି ପଠନ ବର୍ଣ୍ଣ ଏବଂ EOF ଯଦି ଏକ ତ୍ରୁଟି ଘଟେ | ନିମ୍ନଲିଖିତ କାର୍ଯ୍ୟ ଆପଣଙ୍କୁ ଏକ ଷ୍ଟ୍ରିମ୍ ରୁ ଏକ ଷ୍ଟ୍ରିଙ୍ଗ୍ ପ to ିବାକୁ ଅନୁମତି ଦିଏ:

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

    ଫଙ୍କସନ୍ fgets () fp ଦ୍ୱାରା ନିର୍ଦ୍ଦେଶିତ ଇନପୁଟ୍ ଷ୍ଟ୍ରିମ୍ ରୁ n-1 ଅକ୍ଷର ପ read େ | ଏହା ପ read ଼ାଯାଇଥିବା ଷ୍ଟ୍ରିଙ୍ଗକୁ ବଫର୍ ବଫରେ କପି କରେ ଏବଂ ଷ୍ଟ୍ରିଙ୍ଗକୁ ସମାପ୍ତ କରିବା ପାଇଁ ଶେଷରେ ଏକ ନଲ୍ ଅକ୍ଷର ଯୋଡିଥାଏ |

    ଯଦି ଏହି ଫଙ୍କସନ୍ ଶେଷ ଅକ୍ଷର ପ reading ିବା ପୂର୍ବରୁ ଏକ ଭଙ୍ଗା ରେଖା ବର୍ଣ୍ଣ '\ n' କିମ୍ବା ଫାଇଲର ଶେଷର EOF ସାମ୍ନା କରେ, ତେବେ କେବଳ ରେଖା ବ୍ରେକ୍ ଅନ୍ତର୍ଭୂକ୍ତ କରି କେବଳ ପ read ଼ାଯାଇଥିବା ଅକ୍ଷରଗୁଡ଼ିକୁ ଫେରି ଆସିବ | ଫାଇଲରୁ ଷ୍ଟ୍ରିଙ୍ଗ ପ read ିବା ପାଇଁ ଆପଣ int fscanf (FILE * fp, const char * ଫର୍ମାଟ୍, ...) ଫଙ୍କସନ୍ ମଧ୍ୟ ବ୍ୟବହାର କରିପାରିବେ, କିନ୍ତୁ ପ୍ରଥମ ସ୍ପେସ୍ ଏବଂ ଲାଇନ୍ ବ୍ରେକ୍ ସାମ୍ନା କରିବାବେଳେ ଏହା ପ reading ିବା ବନ୍ଦ କରିଦିଏ |

    ଜୀବନ୍ତ ଉଦାହରଣ |

    # ଅନ୍ତର୍ଭୂକ୍ତ କରନ୍ତୁ | int main () {FILE * fp = NULL; ଚାର୍ ବଫ୍ [255]; fp = fopen ("/tmp/test.txt", "r"); fscanf (fp, "% s", ବଫ୍); printf ("1:% s \ n", ବଫ୍); fgets (buff, 255, (FILE *) fp); printf ("2:% s \ n", ବଫ୍); fgets (buff, 255, (FILE *) fp); printf ("3:% s \ n", ବଫ୍); fclose (fp); }

    ଯେତେବେଳେ ଉପରୋକ୍ତ କୋଡ୍ ସଂକଳିତ ଏବଂ ଏକଜେକ୍ୟୁଟ୍ ହୁଏ, ଏହା ନିମ୍ନଲିଖିତ ଫଳାଫଳ ଉତ୍ପାଦନ କରି ପୂର୍ବ ବିଭାଗରେ ସୃଷ୍ଟି ହୋଇଥିବା ଫାଇଲଗୁଡ଼ିକୁ ପ read ଼ିଥାଏ:

    1: ଏହି 2: fprintf ପାଇଁ ପରୀକ୍ଷା କରୁଛି ...

    3: ଏହା fputs ପାଇଁ ପରୀକ୍ଷା କରୁଛି ...

    ପ୍ରଥମେ, fscanf () ର ପଦ୍ଧତି କେବଳ ଏହାକୁ ପ read େ | କାରଣ ଏହା ପଛରେ ଏକ ସ୍ପେସ୍ ସାମ୍ନା କରେ | ଦ୍ୱିତୀୟରେ, ଲାଇନର ଶେଷ ପର୍ଯ୍ୟନ୍ତ ଅବଶିଷ୍ଟ ଅଂଶ ପ read ିବା ପାଇଁ ଫଙ୍କଟନ୍ fgets () କୁ କଲ୍ କରନ୍ତୁ | ଶେଷରେ, ଦ୍ୱିତୀୟ ଧାଡିଟି ସମ୍ପୂର୍ଣ୍ଣ ପ read ିବାକୁ fgets () କୁ କଲ୍ କରନ୍ତୁ |

    ବାଇନାରୀ I / O କାର୍ଯ୍ୟ

    ବାଇନାରୀ ଇନପୁଟ୍ ଏବଂ ଆଉଟପୁଟ୍ ପାଇଁ ନିମ୍ନଲିଖିତ ଦୁଇଟି କାର୍ଯ୍ୟଗୁଡ଼ିକ ବ୍ୟବହୃତ ହୁଏ:

    size_t fread (ଶୂନ୍ୟ * 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);

    ଉଭୟ କାର୍ଯ୍ୟଗୁଡ଼ିକ ଷ୍ଟୋରେଜ୍ ବ୍ଲକ୍ ପାଇଁ ସାଧାରଣତ read ଆରେ କିମ୍ବା ସଂରଚନା ପାଇଁ ପ read ଼ାଯାଏ ଏବଂ ଲେଖାଯାଏ |

    C ଫାଇଲ୍ ପ reading ଼ିବା ଏବଂ ଲେଖିବା ଉପରେ HDV ଫୋଲେକ୍ଟ୍ରନ୍ ଟେକ୍ନୋଲୋଜି ଲିମିଟେଡ୍, ଏକ ସଫ୍ଟୱେର୍ ଟେକ୍ନିକାଲ୍ ଅପରେସନ୍ | ଏବଂ ନେଟୱାର୍କ ସମ୍ବନ୍ଧୀୟ ଯନ୍ତ୍ରପାତି ପାଇଁ କମ୍ପାନୀ (ଯେପରିକି: AC |ONU/ ଯୋଗାଯୋଗONU/ ବୁଦ୍ଧିମାନONU/ ଫାଇବରONU, ଇତ୍ୟାଦି) ଏକ ଶକ୍ତିଶାଳୀ ସଫ୍ଟୱେର୍ ଦଳ ଏକତ୍ର କରିଛି, ପ୍ରତ୍ୟେକ ଗ୍ରାହକଙ୍କ ପାଇଁ ଏହାର ଆବଶ୍ୟକତା ଥିବା ସ୍ୱତନ୍ତ୍ର ଚାହିଦା କଷ୍ଟୋମାଇଜ୍ କରନ୍ତୁ, ଆମର ଉତ୍ପାଦକୁ ଅଧିକ ବୁଦ୍ଧିମାନ ଏବଂ ଉନ୍ନତ କରିବାକୁ ମଧ୍ୟ ଦିଅନ୍ତୁ |



    ୱେବ୍ 聊天