• Giga@hdv-tech.com
  • 24H آن لائن خدمت:
    • 7189078c
    • sns03
    • 6660e33e
    • يوٽيوب 拷贝
    • انسٽاگرام

    سي، دستاويز پڙهڻ ۽ لکڻ

    پوسٽ جو وقت: آگسٽ-11-2023

    بيان ڪري ٿو ته سي پروگرامر ڪيئن ٺاھي ٿو، کولي ٿو، ۽ بند ڪري ٿو ٽيڪسٽ فائل، يا بائنري فائل.

    هڪ فائل، مطلب ته بائيٽ جو هڪ سلسلو، چاهي اها ٽيڪسٽ فائل هجي يا بائنري فائل، سي ٻولي، نه رڳو مٿين سطح جي ڪمن تائين رسائي فراهم ڪري ٿي، پر اسٽوريج ڊوائيس تي فائلن کي پروسيس ڪرڻ لاءِ هيٺيون (OS) ڪال پڻ مهيا ڪري ٿي. . هي باب دستاويز جي انتظام ۾ اهم ڪالن جي وضاحت ڪندو.

    اوپن فائل

    عام طور تي fopen () فنڪشن کي استعمال ڪندي نئين فائل ٺاهڻ يا موجوده فائل کي کولڻ لاءِ، هي ڪال FILE قسم جي هڪ شئي کي شروع ڪري ٿي جيڪا وهڪري کي ڪنٽرول ڪرڻ لاءِ تمام ضروري معلومات تي مشتمل آهي. هتي هن فنڪشن ڪال جو پروٽوٽائپ آهي:

    فائيل * fopen ( const char * فائيل جو نالو , const char * mode )؛

    ھتي فائل جو نالو ھڪڙي اسٽرنگ آھي ھڪڙي فائل کي نالو ڏيڻ لاء، رسائي موڊ جي قيمت ھيٺين مان ھڪڙي ٿي سگھي ٿي:

    نمونو

    وضاحت

    r

    موجوده ٽيڪسٽ فائل کوليو جيڪا ان کي پڙهڻ جي اجازت ڏئي ٿي.

    w

    ھڪڙي ٽيڪسٽ فائل کوليو جيڪا فائل کي لکڻ جي اجازت ڏئي ٿي. جيڪڏهن فائل موجود ناهي، هڪ نئين فائل ٺاهي وئي آهي. هتي، توهان جو پروگرام فائل جي شروعات کان مواد لکي ٿو. جيڪڏهن فائل موجود آهي، ان کي ختم ڪيو ويندو صفر جي ڊيگهه ۽ ٻيهر لکيو ويندو.

    a

    هڪ ٽيڪسٽ فائل کوليو ۽ فائل کي اپينڊ موڊ ۾ لکو. جيڪڏهن فائل موجود ناهي، هڪ نئين فائل ٺاهي وئي آهي. هتي، توهان جو پروگرام انهن فائلن ۾ مواد شامل ڪري ٿو جيڪي توهان وٽ اڳ ۾ ئي آهن.

    r+

    هڪ ٽيڪسٽ فائل کوليو جيڪا توهان کي فائل پڙهڻ ۽ لکڻ جي اجازت ڏئي ٿي.

    w+

    هڪ ٽيڪسٽ فائل کوليو جيڪا توهان کي فائل پڙهڻ ۽ لکڻ جي اجازت ڏئي ٿي. جيڪڏهن فائل اڳ ۾ ئي موجود آهي، فائل کي صفر ڊگھائي تائين ڪٽيو ويندو آهي، ۽ جيڪڏهن فائل موجود ناهي، هڪ نئين فائل ٺاهي وئي آهي.

    a+

    هڪ ٽيڪسٽ فائل کوليو جيڪا توهان کي فائل پڙهڻ ۽ لکڻ جي اجازت ڏئي ٿي. جيڪڏهن فائل موجود ناهي، هڪ نئين فائل ٺاهي وئي آهي. پڙهڻ شروع ٿئي ٿو فائل جي شروعات ۾، ۽ لکڻ صرف ضميمه موڊ ۾ آهي.

    جيڪڏهن پروسيس ٿيل بائنري فائل، مٿين کي تبديل ڪرڻ لاء هيٺ ڏنل رسائي موڊ استعمال ڪريو:

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

    بند ٿيل فائل

    فائل کي بند ڪرڻ لاء، مهرباني ڪري استعمال ڪريو fclose() فنڪشن. فنڪشن جو پروٽوٽائپ هن ريت آهي:

    int fclose (فائل *fp)؛

    • جيڪڏهن فائل ڪاميابي سان بند ٿي وئي آهي، fclose() فنڪشن صفر موٽائي ٿو، ۽ جيڪڏهن غلطي واپسي EOF. هي فنڪشن، حقيقت ۾، بفر مان ڊيٽا کي هٽائي ٿو، فائل کي بند ڪري ٿو، ۽ انهي فائل لاء استعمال ڪيل سڀني ميموري کي جاري ڪري ٿو. EOF هيڊر فائل stdio.h ۾ مسلسل بيان ڪيل آهي

    سي معياري لائبريري مختلف افعال مهيا ڪري ٿي فائلن کي پڙهڻ ۽ لکڻ لاءِ اکرن جي ذريعي يا هڪ مقرر ڊگھائي اسٽرنگ جي طور تي.

    فائل ڏانهن لکو

    هتي اسٽريم ۾ ڪردارن کي لکڻ لاءِ آسان ترين ڪم آهن:

    int fputc (int c، FILE *fp)؛

    فنڪشن fputc () پيراميٽر سي جي ڪردار جي قيمت لکندو آهي آئوٽ اسٽريم ۾ جيڪو fp اشارو ڪري ٿو. جيڪڏهن لکڻيون ڪامياب ٿين ٿيون، اهو لکت وارو ڪردار ۽ EOF واپس ڪري ٿو جيڪڏهن ڪا غلطي ٿئي ٿي. توھان ھيٺ ڏنل فنڪشن استعمال ڪري سگھوٿا ھڪڙي اسٽرنگ کي ختم ڪرڻ لاءِ null to the stream.

    int fputs (const char *s، FILE *fp)؛

    فنڪشن fputs () string s لکندو آھي ٻاھرين وهڪرو ڏانھن جتي fp اشارو ڪري ٿو. جيڪڏهن لکڻ ڪامياب ٿئي ٿي، اهو هڪ غير منفي قدر واپس ڪري ٿو ۽ EOF جيڪڏهن غلطي ٿئي ٿي. توھان پڻ استعمال ڪري سگھو ٿا int fprintf جو فنڪشن (FILE * fp, const char * format,...) فائل کي اسٽرنگ لکي ٿو. ھيٺ ڏنل مثال جي ڪوشش ڪريو:

    نوٽ: پڪ ڪريو ته توهان وٽ موجود آهي tmp ڊاريڪٽري، ۽ جيڪڏهن اها موجود نه آهي، ته توهان کي پهرين پنهنجي ڪمپيوٽر تي ٺاهڻ جي ضرورت آهي.

    / tmp عام طور تي لينڪس سسٽم تي هڪ عارضي ڊاريڪٽري آهي. جيڪڏهن توهان ونڊوز سسٽم تي هلندا آهيو، توهان کي ان کي تبديل ڪرڻ جي ضرورت آهي مقامي ماحول ۾ موجود ڊاريڪٽري ۾، جهڙوڪ: C: \ tmp، D: \ tmp، وغيره.

    زنده مثال

    #شامل int main () { فائل * fp = NULL ؛ fp = fopen ("/tmp/test.txt"، "w+")؛ fprintf (fp، "هي جاچ ڪري رهيو آهي fprintf...\n")؛ fputs ("هي جاچ ڪري رهيو آهي fputs لاءِ...\n ", fp); fclose (fp)؛ }

    جڏهن مٿي ڏنل ڪوڊ مرتب ڪيو ويندو آهي ۽ عمل ڪيو ويندو آهي، اهو هڪ نئين فائل ٺاهي ٿو test.txt inthe / tmp ڊاريڪٽري. ۽ ٻه مختلف افعال استعمال ڪندي ٻن لائينن تي لکي ٿو. اچو ته هن فائل کي اڳتي پڙهون.

    فائل پڙهو

    فائل مان ھڪڙي اکرن کي پڙھڻ لاء ھيٺ ڏنل آسان فنڪشن آھي.

    int fgetc (فائل * fp)؛

    fgetc () فنڪشن ان پٽ فائل مان هڪ ڪردار پڙهي ٿو جنهن ڏانهن fp پوائنٽ. واپسي جي قيمت پڙهڻ وارو ڪردار ۽ EOF آهي جيڪڏهن ڪو غلطي ٿئي ٿي. ھيٺ ڏنل فنڪشن توھان کي ھڪڙي اسٽريم کي پڙھڻ جي اجازت ڏئي ٿو:

    چار * fgets ( char * buf , int n , FILE * fp )؛

    فنڪشن fgets () پڙهي ٿو n-1 اکرن کي ان پٽ اسٽريم مان fp پاران هدايت ڪيل. اهو پڙهڻ واري اسٽرنگ کي بفر بف ڏانهن نقل ڪري ٿو ۽ اسٽرنگ کي ختم ڪرڻ لاءِ آخر ۾ هڪ null ڪردار شامل ڪري ٿو.

    جيڪڏهن هي فنڪشن هڪ ٽٽل لڪير ڪردار '\ n' يا فائل جي آخر جي EOF کي آخري اکر پڙهڻ کان اڳ اچي ٿو، پوء صرف پڙهيل اکرن ڏانهن موٽايو ويو، جنهن ۾ لائين برڪ شامل آهن. توھان پڻ استعمال ڪري سگھو ٿا int fscanf (FILE * fp, const char * format,...) فنڪشن فائل مان اسٽرنگ کي پڙھڻ لاءِ، پر اھو پڙھڻ بند ٿي ويندو آھي جڏھن پھرين اسپيس ۽ لائن بريڪ کي منهن ڏيڻو پوي ٿو.

    زنده مثال

    #شامل int main () { فائل * 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)؛ }

    جڏهن مٿي ڏنل ڪوڊ مرتب ڪيو ويندو آهي ۽ عمل ڪيو ويندو آهي، اهو پوئين حصي ۾ ٺاهيل فائلن کي پڙهي ٿو، هيٺيان نتيجا پيدا ڪري ٿو:

    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 );

    ٻئي فنڪشن پڙهڻ ۽ لکڻ لاء اسٽوريج بلاڪ-عام طور تي arrays يا جوڙجڪ آهن.

    مٿي C فائل پڙهڻ ۽ لکڻ بابت HDV Phoelectron Technology Ltd. سان تعلق رکي ٿو، هڪ سافٽ ويئر ٽيڪنيڪل آپريشن. ۽ ڪمپني نيٽ ورڪ سان لاڳاپيل سامان لاءِ (جهڙوڪ: ACاو اين يو/ مواصلاتاو اين يو/ سمجھداراو اين يو/ فائبراو اين يو، وغيره) گڏ ڪيو آهي هڪ طاقتور سافٽ ويئر ٽيم، هر گراهڪ لاءِ خاص مطالبن کي ترتيب ڏيو جن کي ان جي ضرورت آهي، اسان جي پروڊڪٽس کي وڌيڪ ذهين ۽ ترقي يافته ڏيو.



    web聊天