Որո՞նք են բուֆերը և հոսանքը c- ում և որն է տարբերությունը երկուսի միջև:


պատասխանել 1:

Մի խոսքով, բուֆերը հոսքի տվյալները պահպանում է անընդհատ հոսքի տակ:

C- ում I / O- ն ասինխրոն է. Դուք չգիտեք, թե երբ եք տվյալներ և որքա՞ն: Հետևաբար, բուֆերը սովորաբար օգտագործվում է հոսքից տվյալներ հավաքելու համար (ֆայլ, վարդակից, սարք): Երբ բուֆերը լցված է, այս հոսքի սպառողները տեղեկացվում են և կարող են սպառել տվյալ բուֆերային տվյալները, մինչև դրանք սպառվեն: Այնուհետև սպասեք, մինչև բուֆերը կրկին լրացվի, նախքան այս տվյալները օգտագործելը:

Եկեք անալոգիա անենք էլեկտրական ամբարտակով: Որոշ ջուր ընկնում է խողովակի մեջ և վերածում տուրբին, որը էլեկտրաէներգիա է առաջացնում:

Այսպիսով, ձեզ հարկավոր է ջուր: Գետի վրա ես գնում: Դուք կառուցում եք ձեր տուրբինը և ջուրը թողնում գետից պտտվող տուրբինը: Բայց դուք արագորեն նկատում եք ինչ-որ բան: STրի STREAM- ը կայուն չէ: Երբեմն դա չափազանց շատ է, երբեմն ՝ շատ քիչ: Դուք կանխատեսելիություն չունեք: Ձեր ժողովուրդը հայհոյում է ձեզ, քանի որ ձեր հեռուստացույցը չի գործում: Կամ ընդհակառակը, ձեր հյուրասենյակի լամպերը պայթում են, քանի որ շատ էլեկտրաէներգիա եք տվել: Այսպիսով, դուք պետք է ձեր էլեկտրական էներգիայի ընդհանուր արտադրությունը դարձնեք կայուն և կանխատեսելի:

Այսպիսով, դուք պատնեշ եք կառուցում: Ամբարտակը ձեզ հնարավորություն է տալիս BUFFER- ը ջուր պահելու ժամանակ, երբ այն չափազանց շատ է և այն օգտագործել այն դեպքում, երբ STREAM գետը ձեզ շատ քիչ բան է տալիս: Այս կերպ Դուք կարող եք լինել կայուն և կանխատեսելի: Եթե ​​WATER FLOW- ը երկար ժամանակ չի հոգ տանում ձեզ մասին, նախապես տեղեկացրեք ձեր հաճախորդներին, որ կանխատեսելի ժամանակահատվածում չեք կարողանա արտադրել էլեկտրաէներգիա ձեր BUFFER- ից: Դուք կիմանաք, թե ինչպես միացնել ձեր հեռուստացույցը, անջատել լույսերը (ընտրել էլեկտրական տարբեր մատակարար):

Հուսով եմ ՝ սա կօգնի:


պատասխանել 2:

Բուֆերը գրավիչ արտահայտություն է, որը ես կասեի: Դա պարզապես ժամանակավոր պահեստավորման ֆանտաստիկ անուն է: Եվ դա պարզապես չի օգտագործվում ծրագրավորման մեջ: Տերմինը կարող եք գտնել շատ վայրերում:

Օրինակ, եթե ուզում եք ասել, որ ցանկանում եք բնութագրիչ բուֆեր ունենալ առավելագույնը 1024 նիշով, գրեք նման մի բան

#define BUFFER_SIZE 1024 // և ավելի ուշ այն նախաստորագրում եք char myData- ի [BUFFER_SIZE]

Այժմ դուք ունեք մի բուֆեր, որը պահպանում է 1024 բայթ հիշողություն որոշ գործողությունների համար:

Երբ է օգտագործվում բուֆերը: Ասենք, որ դուք ունեք սպառող և արտադրող, և արտադրողը շատ ավելի արագ է, քան սպառողը:

Սովորաբար տվյալները կուղարկում եք սպառողին ՝ պահելով այն մասը, որը սպառողը ներկայումս չի կարող ստանալ բուֆերային բուֆերի մեջ:

Անունն առաջարկում է հոսք: Տվյալների հոսք: Տերմինը ինքնին կարող է լինել մի կոնստրուկցիայի վերացում, որը կարող եք օգտագործել ՝ անթիվ քանակությամբ բայթ ուղարկելու կամ ստանալու համար:

Երբ որ գրես

printf («Ինչ-որ բան այստեղ է»);

Դուք նախաձեռնում եք մի հոսք, որը տպում է ձեր հաղորդագրությունը ստանդարտ ելքի վրա:

Բայց պարտադիր չէ, որ այդպես լինի: Հոսքերը կարող են կիրառվել ֆայլերի, տվյալների բազաների և միլիոնավոր այլ իրերի վրա:

Մի խոսքով, սակայն, սա ընդամենը տերմին է, որն օգտագործվում է ձեր համակարգչում անհայտ քանակի տվյալների գործարքը նկարագրելու համար ՝ մեկ վայրից մյուսը:

Գուցե ոչ 100% ճշգրիտ, բայց կարծում եմ, որ դուք ունեք գաղափար:

Ուրախություն


պատասխանել 3:

Էլեկտրաէներգիա

Ներկայացրեք I / O հոսքերը C ծրագրավորման լեզվով.

  1. C- ում բոլոր մուտքերը և ելքերը իրականացվում են հոսքերով: Հոսքը ոչ այլ ինչ է, քան տվյալների բայթերի հաջորդականությունը: Ծրագրով հոսող բայթերի հաջորդականությունը կոչվում է մուտքային հոսք: Ծրագրից դուրս հոսող բայթերի հաջորդականությունը կոչվում է ելքային հոսք:

Ստանդարտ մուտքային հոսքի սարք.

  1. stdin- ը կանգնած է (ստանդարտ մուտքագրման) ստեղնաշարի ստանդարտ մուտքագրման սարք է: Ստանդարտ մուտքագրումը տվյալներ է (հաճախ տեքստ), որը մուտքագրվում է ծրագրի: Ծրագիրը հայցում է տվյալների փոխանցումներ ՝ ընթերցման գործողություն օգտագործելով: Ոչ բոլոր ծրագրերն են մուտքագրում պահանջում:

Ելքային հոսքի ստանդարտ սարք.

  1. stdout- ը (ստանդարտ ելքային) էկրան (մոնիտոր) ստանդարտ ելքային սարք է: Ստանդարտ ելքը բաղկացած է տվյալներից (հաճախ տեքստից), որոնք արտանետվում են ծրագրի կողմից: Ծրագիրը տվյալներ է ուղարկում ելքային սարքին `օգտագործելով գրելու գործողություն:

Բուֆեր

«Բուֆեր» տերմինը շատ ընդհանուր տերմին է և հատուկ չէ ՏՏ կամ ՔՀ-ի համար: Այստեղ ինչ-որ բան հնարավոր է փոխարկել ՝ փոխհատուցելու մուտքային և ելքային արագությունների միջև եղած տարբերությունները: Մինչ արտադրողն ավելի արագ է, քան սպառողը, արտադրողը դեռ կարող է արտադրանքը պահել բուֆերով: Երբ սպառողը արագանում է, նա կարող է կարդալ բուֆերից: Բուֆերը կեսին է `բացը փակելու համար:

Պատկերացրեք, կոնֆետը քաղցրեղանից ուտեք: Նրանք պարբերաբար վերցնում են մի կտոր: Որպեսզի ամանը դատարկ չլինի, ինչ-որ մեկը կարող է լիցքավորել ամանը, նախքան այն դատարկ է: Այսպիսով, եթե ուզում եք մեկ այլ կտոր վերցնել, ամանի մեջ կան քաղցրավենիք:

Թասը ծառայում է որպես բուֆեր ձեր և կոնֆետների միջև:

Երբ ֆիլմ եք դիտում առցանց, վեբ ծառայությունը շարունակաբար ներբեռնում է բուֆերը մոտ 5 րոպե: Այդ եղանակով ձեր համակարգիչը չունի այն ներբեռնելու ֆիլմը, երբ այն դիտում եք (ինչը կախված է դրա պատճառով):

Բուֆերը պարզապես հիշողության բլոկ է, որն օգտագործվում է տվյալների պահեստավորման համար: Ընդհանրապես, դա սովորաբար հիշողության մի բլոկ է, որը բեռնված է մեկ գործողության մեջ, այնուհետև դատարկվում է Պերճիկի «Քենդի Bowl» - ի մեկ կամ մի քանի օրինակներում:

Հուսով եմ ՝ սա լուծում է ձեր հարցը :)

Աղբյուր ՝ Google