This is an old revision of the document!


Tema de casă 5 - Arhivator tar

În această temă veţi implementa un arhivator minimal, compatibil tar

Responsabil: Laura Vasilescu

Publicarea temei: joi, 9 ianuarie, ora 23:56

Deadline (hard): joi, 16 ianuarie, ora 23:55

Obiective

În urma realizării acestei teme, studentul va fi capabil:

  • să lucreze cu fișiere text
  • să parseze un text pentru a extrage diferite informații
  • să creeze fișiere binare respectând o anumită specificație

Enunțul temei

Mihai și Ilinca s-au distrat foarte mult cu ocazia sărbătorilor. Pentru că au fost copii cuminți, au primit o vizită de la Moș Crăciun cu care au făcut foooarte multe poze.

Moșul i-a rugat pe cei doi să îi trimită o arhivă tar cu pozele făcute, deoarece clientul său de mail nu suportă decât un singur fișier ca atașament.

Cei doi sunt foarte încântanți să îi trimită mail-ul, însă nu au găsit un utilitar care să îi ajute să realizeze arhiva. Tot ce au găsit este o specificație a formatului. Așa că au nevoie de ajutorul vostru pentru a îi face pe plac Moșului. :)

Funcționarea programului

Implementarea voastră trebuie să genereze un executabil numit my_tar. Acesta primește comenzi de la standard input și se folosește de 2 fișiere adiționale, al căror nume este predefinit, și care trebuie să se afle în același director cu executabilul:

  • usermap.txt
  • file_ls
usermap.txt

Conține output-ul comenzii cat /etc/passwd. Exemplu:

[...]
sshd:x:114:65534::/var/run/sshd:/usr/sbin/nologin
[...]
admin:x:1003:118::/home/admin:/bin/sh
[...]
mysql:x:116:127:MySQL Server,,,:/nonexistent:/bin/false
[...]
ntp:x:121:135::/home/ntp:/bin/false
[...]
lvasilescu:x:1008:1008:Laura Vasilescu,,,:/home/lvasilescu:/bin/bash
file_ls

Se obține din output-ul generat de comanda ls -la –time-style=full-iso în directorul în care se află fișierele pe care dorim să le arhivăm.

Se păstrează doar linile care fac referire la fișierele pe care dorim să le includem în arhivă. Exemplu:

-rw-rw-r-- 1 lvasilescu lvasilescu      8 2013-12-16 17:55:15.882089310 +0200 a
-rw-rw-r-- 1 lvasilescu lvasilescu 214200 2013-12-16 17:55:10.190055687 +0200 test
programare/teme_2014/tema5.1388075114.txt.gz · Last modified: 2013/12/26 18:25 by laura.vasilescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0