Zkouška 1.6.

Odeslat odpověď

Smajlíci
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode je zapnutý
[img] je zapnutý
[flash] je vypnutý
[url] je zapnuté
Smajlíci jsou zapnutí

Přehled tématu
   

Rozšířit náhled Přehled tématu: Zkouška 1.6.

Re: Zkouška 1.6.

od tomasslavicek » 13. 6. 2010 16:55

Jen bych doplnil nějaké informace k této úloze:

Úkolem bylo napsat skript my_ls, který simuluje dlouhý výpis ls (jako ls -l). Přepínače byly:
-a ...vypsat i skryté soubory
-A ...vypsat i skryté, kromě . a ..
-d ...zanořovat se jen do hloubky 0 (nelézt do podsložek), výchozí hodnota zanoření byla 1
-R ...skript se bude zanořovat do celého podstromu. Bylo jedno, zda to budem brát do šířky, nebo do hloubky. Nemuseli jsme psát řádek "total: n".
-r ...vypsat každou složku v obráceném pořadí
-t ...netřídit výpis podle názvu souborů, ale podle času

Zároveň byly vylučující se přepínače -d/-R a myslím -a/-A. Dále se měl vypsat datum ve formátu "Jan 1 1970" pro soubory starší 6 měsíců a "May 17 18:06" pro soubory novější. Pokud nebyla skriptu zadána cesta, bral aktuální adresář. Pokud byl soubor symlink, na konec řádku se připojila šipka a název souboru, kam ukazoval.

Úloha byla opravdu jen o správném naparsování výpisu statu, všechny informace jsme vlastně měli k dispozici. Šlo o to nezamotat se do toho a nijak si to nezkomplikovat, aby se to dalo stihnout. Statu jsme vlastně mohli předat formát data tak, abychom dostali počet milisekund od začátku epochy (pro třídění) i oba formáty výpisu data na jeden řádek. Na konci už bychom jen vybrali jeden z nich, nemělo cenu převádět 3 na "Bře", nějak šíleně porovnávat čísla dní apod. Já jsem také nebyl úspěšný, ideu jsem měl správnou, ale krom pár dalších chybek jsem to nestihnul celé dopsat v kódu.

Mimochodem, zkoušel jste si někdo ten příkaz stat -t na reálném stroji? Pořád mi nebere ten zadaný formát data. Navíc i ten výpis mi připadá nějaký jiný, než byl uveden při zadávání úlohy (jinak zobrazená práva apod.). Doufám, že to nebyla jen umělá úloha, rád bych si ji skutečně doprogramoval.

Zkouška 1.6.

od Ellrohir » 1. 6. 2010 22:37

Dnes byl zase jeden z "nových" příkladů:

Úkolem bylo napsat program simulující "ls -l" a podporující libovolnou kombinaci optionů -aAdrRt (od příkazu "ls")

samozřejmě bez použití "ls"...zato byl představen příkaz "stat" (který v podstatě vypíše o souboru skoro totéž co "ls -l", jeho jediný povolený option byl -t (nastavení formátu výpisu času - protože defaultně ho vypisuje s mezerami, což by mohlo dělat bordel v následném zpracování) a "readlink" (pro zjištění, kam ukazuje symlink - pokud je soubor symlink)


úspěšnost byla zhruba dvou třetinová...já nebyl mezi úspěšnými, ale upřímně řečeno, cítím se trochu "ošizen"...neříkám, že tam třeba nebylo něco vyloženě špatného, ale pakliže je má písemka odmítnuta se slovy "mě se to nelíbí, je to takové moc těžkopádné a nedotažené"...kdyby mi bylo řečeno například "takhle to nejde, awk neumí třídit lexikograficky (pořád nevím, jestli umí nebo ne), takže vám to nebude dělat, co chcete...měl jste použít příkaz sort", to bych třeba bral spíš...a přijde mi, že jsem tam toho celkem dost měl a všechno špatně nebylo...ale holt nestačilo to, ani nedošlo na diskusi...

Nahoru