Արագ պատասխան. Ի՞նչ է stdout-ը և stderr-ը Linux-ում:

Տեքստի ելքը հրամանից դեպի shell առաքվում է stdout (ստանդարտ դուրս) հոսքի միջոցով: Հրամանից սխալ հաղորդագրություններն ուղարկվում են stderr (ստանդարտ սխալ) հոսքի միջոցով:

Ի՞նչ է stdout-ը և stderr-ը:

Համակարգչային ծրագրավորման մեջ ստանդարտ հոսքերը փոխկապակցված մուտքային և ելքային կապուղիներ են համակարգչային ծրագրի և դրա շրջակա միջավայրի միջև, երբ այն սկսում է իրականացվել: Երեք մուտքային/ելքային (I/O) միացումները կոչվում են ստանդարտ մուտքագրում (stdin), ստանդարտ ելք (stdout) և ստանդարտ սխալ (stderr).

Ի՞նչ է stdout-ը Linux-ում:

Ստանդարտ ելքը, երբեմն հապավումը՝ stdout, վերաբերում է տվյալների ստանդարտացված հոսքերին, որոնք արտադրվում են հրամանի տողերի ծրագրերով (այսինքն՝ ամբողջական տեքստային ռեժիմի ծրագրեր) Linux-ում և Unix-ի նման այլ օպերացիոն համակարգերում: … Այս դեպքում այն ​​ֆայլի հրամանին ասում է ընթացիկ գրացուցակի յուրաքանչյուր ֆայլ դիտարկել որպես արգումենտ:

Ի՞նչ է stdout-ը:

Stdout-ը, որը նաև հայտնի է որպես ստանդարտ ելք, է ֆայլի լռելյայն նկարագրիչը, որտեղ գործընթացը կարող է ելք գրել. Unix-ի նման օպերացիոն համակարգերում, ինչպիսիք են Linux-ը, macOS X-ը և BSD-ը, stdout-ը սահմանվում է POSIX ստանդարտով: Դրա լռելյայն ֆայլի նկարագրիչ համարը 1 է: Տերմինալում ստանդարտ ելքը սահմանվում է օգտագործողի էկրանին:

Ի՞նչ է stderr հրամանը Linux-ում:

Stderr-ը, որը նաև հայտնի է որպես ստանդարտ սխալ, է ֆայլի լռելյայն նկարագրիչը, որտեղ գործընթացը կարող է սխալի հաղորդագրություններ գրել. Unix-ի նման օպերացիոն համակարգերում, ինչպիսիք են Linux-ը, macOS X-ը և BSD-ը, stderr-ը սահմանվում է POSIX ստանդարտով: … Տերմինալում ստանդարտ սխալը կանխադրված է օգտագործողի էկրանին:

Ինչպե՞ս վերահղել stderr-ը:

stderr-ը նույնպես վերահղելու համար դուք ունեք մի քանի ընտրություն.

  1. Վերահղեք stdout-ը մի ֆայլ, իսկ stderr-ը մեկ այլ ֆայլ՝ command > out 2>error:
  2. Վերահղեք stdout-ը ֆայլ ( >out ), այնուհետև stderr-ին վերահղեք stdout ( 2>&1): հրաման >out 2>&1:

stdout-ը ներառում է stderr?

Եթե ​​իմ հասկացողությունը ճիշտ է, ապա stdin-ն այն ֆայլն է, որում ծրագիրը գրում է իր հարցումների մեջ՝ գործընթացում առաջադրանք կատարելու համար, stdout-ն այն ֆայլն է, որտեղ միջուկը գրում է իր ելքը, և գործընթացը, որից պահանջում է, որ նա մուտք է գործում տեղեկատվություն, և stderr-ն այն ֆայլն է, որտեղ մուտքագրված են բոլոր բացառությունները.

Ինչպե՞ս գտնել stderr Linux-ում:

Սովորաբար STDOUT-ը և STDERR-ը երկուսն էլ դուրս են գալիս ձեր տերմինալին: Բայց հնարավոր է վերահղել և՛ մեկը, և՛ երկուսն էլ: Օրինակ, STDERR-ին CGI սկրիպտով ուղարկված տվյալները սովորաբար ավարտվում են վեբ սերվերի կազմաձևում նշված գրանցամատյանում: Հնարավոր է, որ ծրագիրը տեղեկատվություն ստանա STDERR-ի մասին linux համակարգում:

Ինչ է և օգտագործում Linux-ում:

The & ստիպում է հրամանը գործարկել հետին պլանում. Man bash-ից. Եթե հրամանն ավարտվում է կառավարման օպերատորի կողմից և, ապա կեղևը կատարում է հրամանը հետին պլանում՝ ենթաշելլում: Կեղևը չի սպասում հրամանի ավարտին, և վերադարձի կարգավիճակը 0 է:

Որտե՞ղ է գնում stdout-ը Linux-ում:

Ստանդարտ ելք, ինչպես ստեղծվել է գործընթացի ստեղծման ժամանակ, գնում է կոնսոլ, ձեր տերմինալ կամ X տերմինալ. Հստակորեն, թե որտեղ է ուղարկվում արտադրանքը, հստակորեն կախված է նրանից, թե որտեղ է սկսվել գործընթացը: լռելյայնորեն ֆայլը կմիացներ մեր ստանդարտ ելքին, այսինքն՝ մեր վահանակի կամ տերմինալի էկրանին:

Արդյո՞ք printf-ը գրում է stdout-ում:

Ցանկացած զանգ դեպի printf կամք print to stdout, մինչդեռ կանչում է fprint while տպել նշված հոսքին: Մեջ օրինակ դուք տալիս եք, երկրորդ ֆունկցիայի կանչը կլինի տպել դեպի stderr. Քանի որ դուք դատարկ տող եք տպում, դուք շատ բան չեք անի երկու հոսքի վրա, այնպես որ դուք չեք տեսնի, որ որևէ ուշագրավ բան տեղի ունենա:

Կարող եք գրել stdout-ին:

Երբ դուք պարտավորվում եք ելք ուղարկել stdout-ին, դուք հիմնականում թողնում եք այն օգտվողին, որը պետք է որոշի, թե որտեղ պետք է գնա այդ ելքը: Եթե ​​դուք օգտագործում եք printf(…) (կամ համարժեք fprintf(stdout, …)), դուք ելքը ուղարկում եք stdout-ին, բայց որտեղ դա իրականում կավարտվի, կարող է կախված լինել նրանից, թե ինչպես եմ ես կանչում ձեր ծրագիրը:

stdout-ը պահպանվու՞մ է:

stdout պարզապես ֆայլի բռնակ որը լռելյայն միացված է վահանակին, բայց կարող է վերահղվել:

Հավանո՞ւմ եք այս հաղորդագրությունը: Խնդրում ենք կիսել ձեր ընկերներին ՝
OS այսօր