Operációs rendszerek (levelező)
A programot az alábbi követelményeknek megfelelően kell elkészíteni és beadni:
- Olvasd el és nagyon pontosan kövesd a program
specifikációt és utasításokat.
- A specifikációban előírt függvényeveket, változóneveket,
argumentumokat ne változtasd meg. Ha például egy strcpy(a,b) függvényt
kell írnod, akkor sem strcpy sem a, b neve nem változtatható.
- Minden egyéb függvényevet, változónevet, stb ...szabadon
választhatsz, de a neveknek tükrözniük kell azok funkcióját. Olyan
függvény nevek, mint func vagy f nem elfogadhatóak. Azonban i
például minden további nélkül használható, mint egy tömb indexváltozó.
- Minden forrásfájl elején egy elegendően részletes leírásnak kell
lennie, amelynek tartalmaznia kell a fájl nevét, a szerző
nevét, ETR azonosítóját, gyakorlati csoport számát, létrehozás dátumát, amit egy részletes kódleírás követ.
- A programkódot el kell látni megfelelő kommentekkel.
- Használj konzisztens tabulálást (emacs/xemacs-ban ez automatikusan történik).
- A programot mindenkinek önállóan kell megirnia.
- Ha az utasításokban az szerepel, hogy futtatható változatot vagy
futási eredményt is be kell adni, akkor ezek hiányában a program nem
értékelhető!
- A programot a megadott határidő előtt kell beadni. Határidő
után program NEM adható be!
- A programot a megadott formátumban és fájlnevekkel kell
beadni. Hibás formátum / fájlnév esetén a program nem értékelhető! A
beadott programokon semmilyen konverziót nem hajtunk végre!
- A program beadásához szükséges technikai információ megtalálható
a kurzus weboldalán:
http://www.inf.u-szeged.hu/~kato/teaching/opsysl/
Határidő: |
2014 május 16., 23:59 |
Formátum: |
Egyetlen tar fájl amely kizárólag a
forrásfájlokat tartalmazza. |
Fájlnév: |
<ETR azonosító>.tar.
A tar fájl létrehozható az alábbi paranccsal: |
|
tar -cvf <tar-fájlnév> list.sh logu.sh |
Irjuk meg a list.sh bash shell scriptet, amelyik az argumentumokban kapott fájlok és könyvtárak tartalmát a
következőképpen listázza ki (használd az ls parancs -l opcióját!!):
- A teljes lista megjelenik a script standard output-ján
- A lista utolsó 5 sora megjelenik a script standard error-ján
- A lista utolsó sora tárolódik egy LISTA nevű változóban, melynek tartalma a script futása után is elérhető.
A script írása során vegyük figyelembe, hogy a futtatás ideje alatt más processzek is használják a rendszert, melyek esetleg megváltoztathatják az argumentumlistában megadott fájlok és könyvtárak tartalmát, tulajdonságait. A scriptnek garantálnia kell, hogy a standard output, standard error, és a LISTA nevű változó tartalma kizárólag a sorok számában különbözik.
A scriptet interpreter fájlként írd meg!
Segítség: A script egyetlen egyszer futtassa a megfelelő ls -l parancsot. Az utolsó n sor leválogatásához használjuk a tail segédprogramot.
A megoldásodat egy list.sh nevű fájlban helyezd el.
A who, sort és awk programok felhasználásával írjunk
egy olyan logu.sh nevű bash shell script-et, amely
kiírja az argumentumként megadott felhasználók azonosítóját és
terminál-azonosítóját, amelyen be vannak jelentkezve. A kimenet legyen úgy
rendezve, hogy a megadott felhasználók azonosítója és
terminál-azonosítója a bejelentkezésük sorrendjében jelenjen meg: A
legrégebben bejeletkezett legelőször; mindenki annyiszor szerepeljen,
ahányszor be van jelentkezve. A script nem hozhat létre fájlokat!
Példa. Tegyük fel, hogy egy UNIX-os gépen a who parancs
az alábbi kimenetet adja:
arthur pts/0 Mar 1 12:35 (pc1)
arthur pts/1 Feb 29 16:58 (pc1)
sheila pts/2 Feb 29 17:26 (ws2)
sheila pts/3 Feb 28 16:19 (ws2)
mary pts/5 Mar 4 01:17 (pc4)
Itt a legelső oszlopban szerepelnek a bejelentkezett felhasználók; a
3-5 oszlopokban pedig a bejelentkezésük időpontja. A fenti input
esetén a logu.sh arthur sheila parancssor az alábbi outputot adja:
sheila pts/3
arthur pts/1
sheila pts/2
arthur pts/0
Fontos: Ha megnézitek a példát, van aki februárban, van aki
márciusban jelentkezett be. Ügyelj arra, hogy a script helyesen
rakja sorrendbe ezeket az adatokat.
A scriptet interpreter fájlként írd meg!
Segítség: A script például a következő lépésekkel implementálható: egy
megfelelő awk program először leválogatja a kivánt sorokat a
who parancs outputjából. Az így kapott outputot a sort
program segítségével tudjuk rendezni (lásd man sort), amelyből
egy újabb awk program adja a script végső outputját.
A megoldásodat egy logu.sh nevű fájlban helyezd el.
Last modified: Fri Apr 18 16:55:35 CEST 2014