Skúška 13. 5. 2010

Seznámení se základními principy operačního systému UNIX, převážně z uživatelského hlediska. Absolvent kurzu by měl být schopen napsat netriviální program v shellu.

Skúška 13. 5. 2010

Příspěvekod Návštěvník » 13. 5. 2010 19:47

Zdravim,

napise niekto zadanie, ktore bolo na skuske?

Dakujem
Návštěvník
 

Re: Skúška 13. 5. 2010

Příspěvekod babca » 13. 5. 2010 20:02

Taky se priklanim k otazce :), jenom pro informaci, a jak to probihalo? Chtel bych pristi tyden, tak abych vedel na co se pripravit :)
dekuji :)
babca
Matfyz(ák|ačka) level I
 
Příspěvky: 9
Registrován: 9. 2. 2010 14:33
Typ studia: Informatika Bc.

Re: Skúška 13. 5. 2010

Příspěvekod DocX » 19. 5. 2010 17:10

Ahoj,

bylo nás na této zkoušce jen 4, prošli 2..

Příklad se jmenoval nějak na h a končil "log", to není podstatné.. O co šlo:
Představte si, že programujete apř. nějakou serverovou aplikaci nebo podobně, která zaznamenává logy o své činosti. Ve zdrojích tedy používáte nějakou globální funkci "log", která přebírá stringový parametr se zprávou. Zpráva je ve tvaru "XXXX-NNN-S Text", kde XXXX-NNN je nějaké číslo a S je "severity". Navíc, protože nechcete nechat uživatele ve štychu, píšete si dokumentaci k těmto zprávám, ve které je nějaký podrobnější popis. Tato dokumentaci máte v souborech pojmenovaných podle XXXX-NNN, ve kterém je vždy seznam severit, zkraceny text, který se tiskne do logu a nějaký další popis.
Úkolem bylo vytvořit skript, který prohledá zdrojové soubory (v C), najde v nich logované zprávy (tj to číslo a text) a zkontroluje zda pro tyto zprávy existuje odpovídající dokumentační soubor a případně v něm konkrétní severita, zda odpovídá logovaný text a zda se v jednom zdrojáku nevyskytuje stejné číslo zprávy vícekrát s různým textem. Výsledek (report) měl zapsat do daného adresáře do souborů pojmenovaného podle prefixů XXXX.

Formát souborů XXXX-NNN:
Kód: Vybrat vše
ids:<tab>XXXX-NNN-S1 XXXX-NNN-S2 ...
text:<tab>Logovaci text, ktery musi odpovidat ve volani log()
desc:<tab>....


Formát reportu (soubor XXXX):
Kód: Vybrat vše
XXXX-NNN-S<tab>STAV<tab>soubor_zdrojáku
....

kde STAV mohlo být
OK .. volání logu se shoduje s dokumentaci,
MISS .. dokumentaci chybý (není vůbec nebo není v seznamu severit),
EXTRA .. existuje dokumentace, ale dana hlaska neni nikde pouzita (na to pozor, není tedy třeba jen vypisovat to co ve zdrojich najdete, ale i co tam nenajdete),
DUPL .. ve zdrojaku je vice stejnych cisel s jinymi texty a
ERR .. nejaka jina chyba (mezi DUPL a ERR neni tak silna hranice, dulezite je aby se vedelo ze je neco spatne a kde)

"Formát" zdrojáků:
protože se používají makra a podobné fíčury, bylo potřeba zdrojáky prohnat nejprve preprocessorem (cc -E tušim). Tudíž nebylo potřeba se zabývat komenty, ale volání logu mohlo vypadat v nejhorším případě takto:
Kód: Vybrat vše
    log  (   "...\\..." "...\".." (nový řádek)
" ......" , dalsi parametry ... );

Kde první parametr je podle C spojení všech stringů dohromady
Mohli jsme se spolehnout na to, že volání logu začíná na vlastním řádku.

Skript měl umět následující syntaxy:
Kód: Vybrat vše
hlog XXX[X] [soubor|adresar [...]]

kde
XXX[X] je prefix logu, které se měli hledat. Tedy bud vsechny zacinajici XXX nebo presne XXXX (potom vytvořil pro každý XXXX svůj report soubor)
soubor .. cesta k souboru ktery prohledat
adresar .. cesta k adresari, ve kterem prohledat vsechny *.c soubory
bez zadani cesty pouzit jako aktualni adresar

Snad je to tak nejak vsechno ;)
Uživatelský avatar
DocX
Matfyz(ák|ačka) level I
 
Příspěvky: 6
Registrován: 1. 2. 2010 18:52
Bydliště: A611
Typ studia: Informatika Bc.


Zpět na SWI095 Úvod do UNIXu

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník