Differences

This shows you the differences between two versions of the page.

Link to this comparison view

programare:teme_2014:tema5 [2013/12/26 18:35]
laura.vasilescu [Funcționarea programului]
programare:teme_2014:tema5 [2014/01/10 21:49] (current)
laura.vasilescu [Trimitere temă]
Line 8: Line 8:
  
 **Deadline (hard):** joi, 16 ianuarie, ora 23:55 **Deadline (hard):** joi, 16 ianuarie, ora 23:55
 +
 +** checker: ** [[http://​lauravasilescu.ro/​5-tar.zip|http://​lauravasilescu.ro/​5-tar.zip]] [05.01.2014,​ ora 21:00]
  
 ====== Obiective ====== ====== Obiective ======
Line 71: Line 73:
  
 În urma acestei comenzi trebuie să se obțină o arhivă cu numele cerut, care să conțină toate fişierele (fără directoare) enumerate în ''​file_ls''​. În urma acestei comenzi trebuie să se obțină o arhivă cu numele cerut, care să conțină toate fişierele (fără directoare) enumerate în ''​file_ls''​.
 +== list archivename ==
 +Comanda va lista în consolă numele fișierelor din arhivă. Câte unul pe linie.
 +
 +== get archivename filename ==
 +Comanda va extrage din arhivă conținutul fișierului ''​filename''​ și îl va afișa în consolă.
 +
 +În urma acestei comenzi, conținutul arhivei rămâne identic.
 +
 +== quit ==
 +Închide programul.
 +===== Formatul arhivei tar =====
 +
 +Mai multe detalii găsiți [[http://​www.mksxserver.com/​docs/​man4/​tar.4.asp|aici]].
 +Practica, structura header-ului ar trebui să fie ceva de genul:
 +<​code>​
 +union record {
 +        char charptr[512];​
 +        struct header {
 +                char name[100];
 +                char mode[8];
 +                char uid[8];
 +                char gid[8];
 +                char size[12];
 +                char mtime[12];
 +                char chksum[8];
 +                char typeflag;
 +                char linkname[100];​
 +                char magic[8];
 +                char uname[32];
 +                char gname[32];
 +                char devmajor[8];​
 +                char devminor[8];​
 +        } header;
 +};
 +</​code>​
 +
 +Câmpurile **name**, **mode**, **uid**, **gid**, **size**, **mtime**, **uname**, **gname** vor fi determinate din fișierele ''​usermap.txt''​ și/sau ''​file_ls''​.
 +
 +**chksum** se compltează făcând suma între toți octeții ce alcătuiesc headerul.
 +
 +**typeflag** va fi 0.
 +
 +**linkname** reprezintă numele fișierului.
 +
 +**magic** o să fie string-ul "​GNUtar " (atenție, e un spațiu la final!)
 +
 +**devmajor** și **devminor** o să fie 0.
 +
 +<​note>​
 +Toate valorile trebuie să fie în **octal**. Vedeți în documentație.
 +</​note>​
 +
 +===== Trimitere temă =====
 +
 +
 +
 +  * Tema va fi trimisă atât pe [[https://​elf.cs.pub.ro/​vmchecker/​|vmchecker]] cât și pe [[http://​cs.curs.pub.ro|moodle]],​ sub forma unei arhive ZIP.
 +  * Arhiva va trebui să conţină ''​în directorul rădăcină''​ doar următoarele:​
 +     * Codul sursă al programului vostru (fişierele ''​.c''​ şi eventual ''​.h''​).
 +     * Un fişier ''​Makefile''​ care să conţină regulile ''​build''​ şi ''​clean''​. Regula ''​build''​ va compila programul într-un executabil cu numele **''​my_tar''​**. Regula ''​clean''​ va şterge executabilul şi eventual toate binarele intermediare (fişiere obiect) generate de voi.
 +     * Un fişier ''​README''​ care să conţină prezentarea implementării alese de voi.
 +  * O temă care nu compilează nu va primi nici un punct.
 +  * Criteriile de notare sunt următoarele:​
 +     * **''​90 puncte''​** - testele automate din arhiva de testare.
 +     * **''​10 puncte''​** - calitatea şi eficienţa implementării,​ explicaţiile din README şi aspectul codului sursă.
 +
programare/teme_2014/tema5.1388075729.txt.gz · Last modified: 2013/12/26 18:35 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