МАТФ РОКОВИ
22.01.2021.

Писмени испит из предмета Оперативни системи За смер Р.

1

50 поена
  • [40] Написати програм који израчунава проценат који заузимају извршни фајлови у директоријуму задатом првим аргументом командне линије, као и у свим његовим поддиректоријумима. Под извршним фајлом сматрати сваки регуларан фајл за кога било која група корисника има право извршавања. При претраживању не треба пратити симболичке линкове.
  • [10] Све грешке у системским позивима појединачно обрадити.

Пример: једно покретање програма би могло бити облика:

$ ./zadatak1 .
82%
$ ./zadatak1 temp
100%

2

50 поена
  • [20] Написати програм који ажурира фајл са резултатима чија је путања /tmp/rezultati. Фајл се састоји од линија, од којих је свака у формату ime prezime poeni. Са стандардног улаза корисник уноси име, презиме и број поена, раздвојене празним карактером, све док не унесе ознаку за крај фајла. Уколико линија са улаза није у описаном формату, штампа се порука и наставља са радом. Програм треба да уписује једну по једну линију у фајл /tmp/rezultati. Обезбедити закључавање фајла при упису методом record locking-a.
  • [20] Када је корисник завршио са уносом података, програм треба да сортира дати фајл по броју поена у опадајућем редоследу и да резултат сортирања штампа на стандардни излаз. За сортирање фајла користити екстерни програм sort. Неке од опција овог програма су: +n - сортирање се врши нумерички, +5 - сортирање се врши по шестој колони, при чему је сепаратор између колона празан карактер.
  • [10] Све грешке у системским позивима појединачно обрадити.

Пример: једно покретање програма би могло бити облика:

$ ./zatadak2
Marko Markovic 20
Pera Peric 5
Laza Lazic 10
Sortirano:
Marko Markovic 20
Laza Lazic 10
Pera Peric 5