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

    ج، د اسنادو لوستل او لیکل

    د پوسټ وخت: اګست-11-2023

    تشریح کوي چې څنګه C پروګرامر د متن فایل یا بائنری فایل رامینځته کوي، خلاصوي او بندوي.

    فایل، د بایټونو لړۍ معنی لري، که دا د متن فایل وي یا بائنری فایل، C ژبه، نه یوازې د لوړې کچې فعالیتونو ته لاسرسی چمتو کوي، بلکې د ذخیره کولو وسیله کې د فایلونو پروسس کولو لپاره لاندې (OS) کال هم چمتو کوي. . دا څپرکی به د اسنادو مدیریت کې مهم غوښتنې تشریح کړي.

    خلاص دوتنه

    معمولا د نوي فایل رامینځته کولو یا موجوده فایل خلاصولو لپاره د fopen () فنکشن په کارولو سره ، دا زنګ د FILE ډول یو څیز پیل کوي چې د جریان کنټرول لپاره ټول اړین معلومات لري. دلته د دې فنکشن کال پروټوټایپ دی:

    فایل *فوپین ( 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

    د C معیاري کتابتون د حروفونو یا د ثابت اوږدوالي تار په توګه د فایلونو لوستلو او لیکلو لپاره مختلف فعالیتونه وړاندې کوي.

    فایل ته ولیکئ

    دلته جریان ته د کرکټرونو لیکلو لپاره ترټولو ساده دندې دي:

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

    کله چې پورتني کوډ تالیف او اجرا شي، دا د /tmp ډایرکټر کې نوې فایل test.txt جوړوي. او دوه کرښو ته د دوه مختلف افعالو په کارولو سره لیکي. راځئ چې دا فایل بیا ولولئ.

    فایل ولولئ

    لاندې د فایل څخه د یو واحد کرکټر لوستلو لپاره ترټولو ساده فعالیت دی:

    int fgetc ( فایل * fp );

    fgetc () فنکشن د ان پټ فایل څخه یو کرکټر لولي چې fp ورته اشاره کوي. د بیرته ستنیدو ارزښت د لوستلو کرکټر او EOF دی که کومه تېروتنه رامنځته شي. لاندې فنکشن تاسو ته اجازه درکوي د جریان څخه یو تار ولولئ:

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

    فنکشن fgets () د fp لخوا لارښود شوي ان پټ سټریم څخه n-1 حروف لوستل کیږي. دا د لوستلو تار بفر بف ته کاپي کوي او د تار پای ته رسولو لپاره په پای کې یو نری کرکټر ضمیمه کوي.

    که چیرې دا فنکشن د وروستي کرکټر لوستلو دمخه د مات شوي کریکټر '\ n' یا د فایل پای EOF سره مخ شي ، نو بیا یوازې لوستل شوي حروف ته راستون کیږي ، په شمول د لاین وقفې. تاسو کولی شئ د فایل څخه د سټینګ لوستلو لپاره int fscanf (FILE * fp, const char * format,...) فنکشن هم وکاروئ ، مګر دا د لومړي ځای او لاین وقفې سره مخ کیدو پرمهال لوستل بندوي.

    ژوندی مثال

    #شامل int main () { فایل * fp = NULL ; char buff [255] ; fp = fopen ("/tmp/test.txt", "r"); fscanf (fp , "%s" , buff ); printf ("1: %s \n ", buff); fgets (buff , 255, (file *)fp ); printf ("2: %s \n ", buff); fgets (buff , 255, (file *)fp ); printf ("3: %s \n ", buff); 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. پورې اړه لري، د سافټویر تخنیکي عملیات. او د شبکې اړوند تجهیزاتو لپاره شرکت (لکه: ACONU/ اړیکهONU/ هوښيارONU/ فایبرONU، او داسې نور) د سافټویر ځواکمن ټیم سره یوځای کړی ، د هر پیرودونکي لپاره ځانګړي غوښتنې تخصیص کړئ چې ورته اړتیا لري ، اجازه راکړئ زموږ محصولات ډیر هوښیار او پرمختللي وي.



    ویب 聊天