Téma: ÚVOD Man pages, chybový výstup

Podobné dokumenty
Operačný systém Úvodná prednáška

Externé zariadenia Používateľská príručka

Návod na použite plaftormy ELMARK E- Business obsahuje popis hlavných možností a funkcií programu. Príručka je štruktúrovaná podľa poradia možností.

PODPROGRAMY. Vyčlenenie podprogramu a jeho pomenovanie robíme v deklarácii programu a aktiváciu vykonáme volaním podprogramu.

Užívateľská príručka systému CEHZ. Základné zostavy Farmy podľa druhu činnosti

Vytvorenie bootovacieho CD

Pracovné prostredie MS EXCEL 2003.

Informatika a jej jednotlivé oblastí

Prehľad nového TwinSpace

VYSPORIADANIE PREHRADENÝCH ZÁVÄZKOV A POHĽADÁVOK

Diplomový projekt. Detská univerzita Žilinská univerzita v Žiline Matilda Drozdová

VECIT 2006 Tento materiál vznikol v rámci projektu, ktorý je spolufinancovaný Európskou úniou. 1/4

Textový editor WORD. Práca s obrázkami a automatickými tvarmi vo Worde

ALGORITMY A PROGRAMOVANIE VO VÝVOJOVOM PROSTREDÍ LAZARUS. Vývojové prostredie Lazarus, prvý program

s.r.o. HelpLine:

Manuál pre používanie programu KonverziaXML_D134

Program "Inventúra program.xlsm"

Zápis predmetov do AiSu na aktuálny akademický rok

Návod k servisnému programu pre fiskálny modul FM2000. manuál. (c)varos

P R O L U C. POZNÁMKY individuálnej účtovnej závierky pre rok 2014

15. Príkazy vetvenia

KOMISNÝ PREDAJ. Obr. 1

Obr. 1 - názov podpísaného súboru/kontajnera v sivej lište

KONTROLA INTERAKCIÍ LIEKOV

Modul PROLUC Podvojné účtovníctvo

Studentove t-testy. Metódy riešenia matematických úloh

Užívateľský manuál e-shopu Tento krátky manuál sme pripravili s cieľom uľahčiť Vám orientáciu na tejto stránke.

Tlač do PDF a odosielanie dokladov cez . OBSAH

Virtuálna Registračná Pokladnica

TomTom Referenčná príručka

7.1 Návrhové zobrazenie dotazu

Bezdrôtová sieť s názvom EDU po novom

Štruktúra údajov pre kontajner XML údajov 1. Dátové prvky pre kontajner XML údajov

Moderné vzdelávanie pre vedomostnú spoločnosť/projekt je spolufinancovaný zo zdrojov EÚ. Grafy

Návod na aktualizáciu firmvéru pre 4G router TP-Link MR200

Vytvorenie používateľov a nastavenie prístupov

D.Viewer2 Používateľská príručka

UŽÍVATEĽSKÁ PRÍRUČKA. TCP Optimizátor

Používateľská príručka pre autorov

Ekvia s.r.o EKVIA PREMIUMPRO. Užívateľský manuál

R11 extremo. Odolný mobilní telefon pro dvě SIM karty. Návod k funkci SOS locator Návod na použitie SOS locator

7.CVIČENIE. Základy HTML

Microsoft Outlook. Stručný prehľad základných funkcií. Ing.Anna Grejtáková, SPP DFBERG

Téma : Špecifiká marketingu finančných služieb

PLASTOVÉ KARTY ZÁKAZNÍKOV

Názov projektu: Čítaj viac a dvere k poznaniu sa samy otvoria. Kód projektu: METODICKÝ LIST

Virtuálna Registračná Pokladnica. Modul OPD pre ios

MATLAB (1) - úvod do programovania vedeckých problémov. LS 2017, 8.predn.

Hromadná korešpondencia v programe Word Lektor: Ing. Jaroslav Mišovych

Manuál na prácu s databázou zmlúv, faktúr a objednávok Mesta Martin.

Užívateľská príručka Hospodársky register

OPAKOVANIE ZÁKLADNÉ POJMY Z INFORMATIKY

Manuál Shenzhen Rikomagic Tech Corp.,Ltd

Úvodná strana IS ZASIELKY Prvky úvodnej stránky:

V nej je potrebné skontrolovať správnosť prenesených a prepočítaných zostatkov z roku 2008.

Školská sieť EDU. Rozdelenie škôl. Obsah: Deleba škôl podľa času zaradenia do projektu: Delba škôl podľa rýchlosti pripojenia:

Metodický manuál k aplikácii HISCO (

Používateľská príručka portálu

Technická príručka pre pripojenie k portálu

Používateľská príručka k aplikácii na SOČ

KEO - Register obyvateľov Prevod údajov

OXICO. jazykové knihy. ponuka platí do

Elektronická značka je k dispozícii na stránke etax v záložke Úvod, položka menu Správa Certifikátov.

Erasmus+ Online jazyková podpora (OLS) Využite svoj pobyt Erasmus+ naplno!

SPRIEVODCA PRE POUŽÍVANIE EPAYMENTS

ONLINE PORTÁL COPY OFFICE SERVICE ACCENT REMOTE CUSTOMER

NEINTERAKTÍVNA KOMUNIKÁCIA

Vyhľadávanie podľa VIN ecat.

MANUÁL K TVORBE CVIČENÍ NA ÚLOHY S POROZUMENÍM

DÁTOVÉ PRVKY NA POPIS ČÍSELNÍKA

Seminár k záverečnej práci

Rozšírený zápis ZoznamŠkôl.eu

Návod Môj Slovanet Krátky sprievodca registráciou a obnovou hesla

Hotline - účtovníctvo tel.: 0905/ , denne od 8 00 do HUMANET ÚČTOVNÍCTVO

Kombinatorická pravdepodobnosť (opakovanie)

Príručka k programu WinSCP

Práca s elektronickou prihláškou SOČ

plagát Formát po odrezaní Formát pred odrezaním Spad Vnútorný okraj Formáty súborov Pomoc Sprievodca na prípravu súborov PLAGÁT - A1

Špecifikácia testu. z matematiky. pre celoslovenské testovanie žiakov 5. ročníka ZŠ v školskom roku 2016/2017

OCHRANA INOVÁCIÍ PROSTREDNÍCTVOM OBCHODNÝCH TAJOMSTIEV A PATENTOV: DETERMINANTY PRE FIRMY EURÓPSKEJ ÚNIE ZHRNUTIE

Objektovo orientované programovanie v C# ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 3

Skákalka. Otvoríme si program Zoner Callisto, cesta je Programy Aplikácie Grafika Zoner Callisto.

Predaj cez PC pokladňu

Multihosting Užívateľská príručka

EURES Európske služby zamestnanosti

DOBROPISY. Dobropisy je potrebné rozlišovať podľa základného rozlíšenia: 1. dodavateľské 2. odberateľské

Užívateľská príručka. Vytvorte 1 medzi stránkami v niekoľkých jednoduchých krokoch

Ako postupovať pri vyplňovaní formulára.

kozmix.sk manuál pre rodiča Práca s portálom je hračka! Ovládanie portálu krok za krokom

Oznámenie o príjme a výdaji liehu v SBL

Používateľská príručka pre autorov Prihlásenie

Žiadosť o poskytnutie dotácie z FPU v roku 2016

Návod na používanie súboru na vyhodnotenie testov všeobecnej pohybovej výkonnosti

ONLINE POBOČKA. pre zamestnávateľov MANUÁL

Import Excel Univerzál

Formuláre PowerPoint MGR. LUCIA BUDINSKÁ,

Používateľská príručka: MOODLE

Ako funguje stav účtu - prehľad o platbách na zdravotné odvody

RECYKLAČNÝ FOND NASTAVENIE PROGRAMU PRE POTREBY RECYKLAČNÉHO FONDU

Konfigurácia IP Bell 02C Dverný vrátnik a FIBARO Home Center 2

Transkript:

Téma: ÚVOD Man pages, chybový výstup Kľúčové slová unix manual, <názov služby> unix example, Linux documentation project Zapamätať si: účel a funkciu man pages (manuálových stránok) v Unixe Ciele Porozumieť: Aplikovať : Vyriešiť: parametrom príkazu man, premennej errno, funkcii perror a strerror služby na spracovanie chýb problémy spojené s analýzou kompilačných chýb používanie služieb štandardného chybového výstupu v programoch problémy týkajúce sa nájdenia informácií jednotlivých službách jadra Odhadovaný čas Scenár 35 min Sofia sa prvý raz stretla s OS Unix. Nemá žiadnu predstavu o tom, ako tento systém pracuje, kde má nájsť o ňom potrebné informácie a ako sa zorientovať v možnostiach a službách, ktoré jej ponúka. Zároveň by potrebovala získať skúsenosť v práci so štandardným chybovým výstupom, pretože pomocou neho bude schopná nájsť odpovede na množstvo problémov, s ktorými sa stretne pri tvorbe svojich programov. POSTUP: Internet Prvým zdrojom informácií pre Sofiu o OS Unix (v dnešnej dobe skoro pri všetkom) je internet. Otvorí si teda svoj obľúbený internetový prehliadač. Keďže potrebuje nejaké informácie o OS Unix, do príslušnej kolónky prehliadača vpíše unix manual. Z veľkého množstva výsledkov vyhľadávania si postupne vyberie tie, ktoré jej vyhovujú. Postupne, ako sa bude dozvedať o jednotlivých službách v OS Unix, môže na internete vyhľadávať informácie týkajúce sa konkrétne nejakej služby tak, že do vyhľadávača vpíše názov tejto služby spolu so slovom unix napr.: open() unix. Man pages Ďalším zdrojom informácií môžu byť pre ňu manuálové stránky (man pages), ktoré sú súčasťou každej distribúcie OS Linux/Unix. Sofia postupne zistí, že väčšina zdrojov na internete o nejakých službách OS Unix je kópiou man pages. Man pages sa rozdeľujú na niekoľko častí. V každej časti sú príkazy/služby, ktoré spolu logicky súvisia. Rozdelenie je nasledovné: - 1 -

Časť Popis 1 spustiteľné programy a príkazy shellu 2 služby jadra operačného systému 3 služby knižníc operačného systému 4 špeciálne súbory (obyčajne v adresári /dev/ ) 5 formáty súborov, protokolov a štruktúry jazyka C 6 Hry rôzne (dohody, protokoly, znakové normy, rozvrhnutie súborového 7 systému,...) 8 administrácia systému 9 rutiny jadra operačného systému (nie je to štandardná časť man pages) Pre podrobnejšie informácie zadá príkaz man 1 man. O tom, ktorá časť čo zahŕňa, sa Sofia môže dozvedieť z úvodu (intra) každej z nich. Prečítať man 1 intro, man 2 intro, man 3 intro,... Čo má však robiť v tom prípade, ak nevie, v ktorej časti man pages sa potrebná služba nachádza? K tomu jej môže pomôcť príkaz: man f <názov služby> Teda ak Sofia nevie, v ktorej časti man pages sa nachádzajú informácie o službe open(), zadá: man f open Po zistení čísla časti (pri službe open() je to 2 ) už len stačí, ak zadá: man 2 open - alebo len - man open Druhá možnosť je v prípade neznámych služieb trochu riskantná, pretože operačný systém môže poskytovať niekoľko manuálových stránok pre zadanú službu a teda man <služba> jej môže vrátiť zlý manuál. V prípade, ak Sofia nevie, ktorú službu vlastne hľadá, resp. akú službu by mala použiť, môže využiť prepínač -k, ktorý vypíše služby operačného systému obsahujúce zvolené slovo aj s stručným popisom. Napríklad by Sofia chcela vedieť, ktoré služby sa týkajú práce s vlastníkom (súboru): man -k owner Ak si Sofia našla a prečítala manulovú stránku, tak potom potrebuje opustiť man pages. Dozvedela sa, že k tomu je stačí iba stlačenie klávesy q. - 2 -

Linux - dokumentačný projekt, knihy a iné zdroje Jedným z mnohých zdrojov informácií môže byť pre Sofiu aj Linux - dokumentačný projekt (voľne dostupný na internete - http://www.linux.org/docs/ldp/index.html ). Obsahuje vcelku detailný popis činnosti OS Linux. Zahŕňa však skôr praktické použitie služieb jadra, než vysvetlenie ich syntaxe. O nej sa Sofia môže dozvedieť okrem z vyššie spomínaných zdrojov aj zo špecializovaných publikácií. Hlavičkové súbory Sofia môže nabrať vedomosti o potrebných službách aj z hlavičkových súborov, o ktorých sa dozvedela, že ich je potrebné pripojiť k programu pre správnu funkčnosť služby jadra. Hlavičkové súbory jazyka C sa nachádzajú v adresári Linuxu - /usr/include/, prípadne /usr/include/sys/. Takže, ak sa Sofia bude chcieť niečo dozvedieť o službe open(), najprv si zistí (napr. pomocou manuálu), aké hlavičkové súbory potrebuje táto služba a potom si v adresári /usr/include/ otvorí potrebný hlavičkový súbor pomocou príkazu cat <meno_hlavickoveho_suboru>, ktorý zobrazí jeho obsah. Zdrojové kódy OS Linux/Unix je Open source, čo znamená, že zdrojové kódy jednotlivých systémových volaní sú voľne prístupné (prezerateľné). To vytvára ďalšiu možnosť pre Sofiu, ako sa oboznámiť s funkčnosťou jednotlivých služieb. Zdrojový kód jadra Linuxu je umiestnený v /usr/src/linux/, teda ak by Sofia videla potrebu hlbšieho prieniku do pochopenia činností pamätí, procesov alebo zariadení, zdrojové kódy sú jej plne k dispozícii. - 3 -

Podtéma: Štandardný chybový výstup Kľúčové slová Ciele Odhadovaný čas Scenár errno unix, perror() unix význam a funkciu štandardného chybového Zapamätať si: výstupu Porozumieť: Aplikovať: Vyriešiť: konceptu chybového výstupu, syntaxi príkazov a služieb príkazy a služby odchytenie a spracovanie chybových stavov v programoch 15 min Sofia už ovláda syntax a parametre jednotlivých služieb jadra a napísala si program. Po kompilácií a spustení jej program nefunguje. Sofia potrebuje zistiť, o akú chybu ide a ako ju má odchytiť. KRÁTKY ÚVOD: Štandardné prúdy Dozvedela sa, že Systém Linux / Unix obsahuje tzv. štandardné prúdy, ktoré predstavujú vstupné a výstupné kanály medzi počítačovým programom a jeho okolím. Vie, že existujú tri vstupno/výstupné kanály: - štandardný vstup stdin - štandardný výstup stdout man stdin - štandardný chybový výstup stderr STDIN: Predstavuje štandardný vstupný kanál, z ktorého programy čítajú údaje. Tento štandardný vstup, podobne ako aj výstup a chybový výstup, môžeme považovať za súbor. Všetkým súborom, s ktorými sa pracuje, jadro systému prideľuje špeciálne malé celé nezáporné číslo deskriptor 1. Hodnota deskriptoru pre štandardný vstup je 0. STDOUT: Do štandardného výstupného kanálu programy posielajú (zapisujú) potrebné dáta. Tie sa implicitne zobrazia na štandardnom výstupnom zariadení (monitor). Jeho deskriptor má hodnotu 1. 1 Deskriptor je odkaz na štruktúry (tabuľka deskriptorov) v jadre systému, pomocou ktorého sa bude k súboru pristupovať iba pomocou systémových volaní. Všetky deskriptory, ktoré proces (náš program) vlastní, buď zdedil od svojich rodičov alebo tieto deskriptory získal niektorým systémovým volaním. - 4 -

STDERR: Prostredníctvom štandardného chybového výstupu programy vypisujú na výstupné zariadenie chybové správy. Jeho deskriptor má hodnotu 2. Zlyhanie volania systémovej služby Každá služba jadra vracia návratovú hodnotu, ktorá určuje, či služba bola vykonaná korektne, alebo pri spracovaní služby sa vyskytla chyba. Výskyt chyby sa signalizuje špeciálnou návratovou hodnotou služby (spravidla hodnota -1). Bližšiu špecifikáciu chyby môžeme nájsť v premennej errno. Premenná errno: využíva hlavičkový súbor errno.h errno je typu int a je to globálna premenná nastavená na hodnotu 0 ak volaná služba jadra sa vykoná korektne tak hodnota premennej, ktorú vracia errno je 0 ak volaná služba jadra sa nevykoná korektne tak vracia hodnotu danej chyby nikdy nemôže mať 0, ak sa vyskytla chyba podrobný zoznam chýb je v man 3 errno Chybové hodnoty sú celé čísla, ktoré sú definované v hlavičkovom súbore errno.h. Tieto hodnoty sú štandardne pomenované názvami z veľkých písmen začínajúcimi písmenom E, napríklad EACCES, EINVAL. POSTUP: Prečítať man 3 errno. Príklad využitia premennej errno (musí obsahovať hlavičkový súbor errno.h): if (systemcall() == -1) { int errsv = errno; printf("chyba pri volani systemcall()\n"); if (errsv ==...) {... ; Doplňte (podľa man 3 errno): Kód chyby Význam EACCES ENOENT ENOTDIR EINVAL Prístup zamietnutý - 5 -

Funkcia perror(): Syntax: #include <stdio.h> void perror(const char *s); Funkcia perror() na základe hodnoty errno generuje popis chyby posledného systémového volania priamo na štandardný chybový výstup (stderr). Argumentom funkcie perror() je reťazec, ktorý sa zobrazí pred samotným popisom chyby. V praxi sa ako parameter používa názov systémovej služby, aby mal programátor prehľad, kde chyba vznikla. Podrobnejšie v man 3 perror. Príklad využitia funkcie perror(): if (sluzba() == -1) { perror("sluzba()"); Funkcia strerror(): Syntax: #inlcude <string.h> char *strerror(int errnum); Funkcia strerror() vracia reťazec popisujúci číslo chyby, ktoré je jej argumentom. Hlavičkový súbor string.h je potrebný pri použití funkcie strerror(). Príklad otvorenia súbor a vypísaniu chybového hlásenia v prípade vyskytnutia chyby. V príklade sa použila služba open(), s ktorou sa Sofia detailnejšie zoznámi na niektorom z ďalších cvičení. Pre tento príklad jej stačí vedieť, že touto službou otvára súbor. Program 1 #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdio.h> int main() { int fd; //premenna pre ulozenie navratovej hodnoty fd = open("subor0",o_rdonly); //otvorenie suboru if(fd == -1) //odchyt chyby pri neotvoreni suboru { printf("vypis premennej errno: %d\n",errno); printf("vypis pomocou sluzby strerror:%s\n",strerror(errno)); perror("vypis funkcie perror pre funkciu open"); return 0; - 6 -

Podrobnejšie v man 3 strerror. Doplňte: Pri používaní systémových služieb sa bežne môže stať, že služba neskončí správne a počas jej vykonávania nastane chyba. To indikuje návratová hodnota služby, ktorá je v takomto prípade väčšinou (doplňte hodnotu z manuálových stránok). Zistiť presne, o aký typ chyby ide môže Sofia pomocou systémovej premennej. Premenná errno je typu int a vyžaduje hlavičkový súbor. ÚLOHY NA SAMOSTATNÚ PRÁCU: Vytvorte súbor s názvom subor0, ktorý sa bude nachádzať v adresári kde sa nachádza predchádzajúci Program 1 na otvorenie súboru. Aký bude výpis programu uvedeného v tejto podtéme ak súbor subor0 bude existovať a aká bude hodnota premennej errno? - 7 -