Koristenjem C++ jezika treba napisati mali program za ekstrakciju datoteka iz .DEB (Debian file format) formata.
Ima li i'ko kakvih ideja ?
Koristenjem C++ jezika treba napisati mali program za ekstrakciju datoteka iz .DEB (Debian file format) formata.
Ima li i'ko kakvih ideja ?
To nece biti bas malen program ako moras pisati i algoritme za rad sa zip kompresijom. Ako mozes koristiti tudje biblioteke za rad sa komprimiranim datotekama onda ce biti daleko manji program.
hm. pa mislim da je "sve" dozvoljeno...
Onda si prouci zlib biblioteku i rad s njom.
Jel trebam nešto skinut s tog sajta ?
Jep,zlib.dll odnsono potreban library
Koristenjem C++ jezika treba napisati mali program za ekstrakciju datoteka iz .DEB (Debian file format) formata.
Ima li i'ko kakvih ideja ?
rješenje zadatka koji si dobio u natječaju za posao programera tražiš na forumu?!
divno...
kako ćeš onda rješavati probleme na poslu, ako ga dobiješ?
Koristenjem C++ jezika treba napisati mali program za ekstrakciju datoteka iz .DEB (Debian file format) formata.
Ima li i'ko kakvih ideja ?
rješenje zadatka koji si dobio u natječaju za posao programera tražiš na forumu?!
divno...
kako ćeš onda rješavati probleme na poslu, ako ga dobiješ?
Pa vjerojatno opet na forumu
Da, taman sam htio reci da koristis gotove biblioteke za unzip. Googlaj, naci ces milijardu exampleova na netu.
U ovom slučaju library su nepotrebni. Bolje prouči kako .deb file format izgleda strukturno i ne trebaš ni zlib ni ništa drugo.
p.s. unzip nema veze sa .deb ilivamga ar file formatom.
Proučio sam malo .deb na Wikipediji... No, još uvijek ne znam riješit zadatak.
U ovom slučaju library su nepotrebni. Bolje prouči kako .deb file format izgleda strukturno i ne trebaš ni zlib ni ništa drugo.
p.s. unzip nema veze sa .deb ilivamga ar file formatom.
Ako sam dao pogresnu informaciju onda se ispricavam, za preporuku zlib-a sam dosao na ideju zbog ovoga (wikipedia citat), osobno nikada nisam radio sa .deb formatom. .rpm mi je puno poznatiji:
Debian packages are standard Unix ar archives that include two gzipped, bzipped or lzmaed tar archives: one that holds the control information and another that contains the data.
Proučio sam malo .deb na Wikipediji... No, još uvijek ne znam riješit zadatak.
Sve ti pise: http://en.wikipedia.org/wiki/Ar_%28Unix%29
Kaze: Global header - The global header is a single field containing the magic ASCII string "!<arch>" followed by a single LF control character.
Globalni header u pravilu mozes ignorirat - znaci citas znak po znak dok ne dodjes do znaka za LF (to ti je 0Ahex iliti 10dec). Ja sam recimo za test skinuo neki fajl swiftfox_3.6.10-1_i686.deb i on u prvih 72 bajta drzi taj globalni header - znaci, kod te datoteke jednostavno bi odbacio prva 72 bajta (osim, naravno, ako i taj header ne moras za nesto iskoristiti).
Kaze dalje: File header - The common format is as follows. - i onda ti da tablicu od kojeg do kojeg bajta imas koju vrijednost. I tu bi isto trebalo biti sve jasno.
Uzmi si neki hex. editro (recimo Frhed) i njime otvori .deb datoteku. I otvori .deb datoteku nekim arhiverom, poput 7-zip. Je li sad sve jasno? Samo si moras povezati ono sto vidis u 7-zipu, Frhedu i informaciju o File headeru na Wikipediji.
Ako nakon ovih informacija neces znati rijesiti zadatak - onda si promasio profesiju.
Header ti treba kao kod svake arhive. U headeru postoji magic odnosno <!arch> koji treba provjeriti da li postoji, jer ako ne postoji nije .deb format. Pa imaš još važnih informacija u headeru koje treba provjeriti, kao group owner, owner, verzija itd. Nakon toga treba čitati datoteku liniju po liniju ii naći control.tar i data.tar. Itd itd.
Ali slažem se ako ne možeš iskoristiti podatke iz wiki onda nisi za tu profesiju.
Header ti treba kao kod svake arhive. U headeru postoji magic odnosno <!arch> koji treba provjeriti da li postoji, jer ako ne postoji nije .deb format.
Istina - totalno sam to smetnuo s uma.
Pa imaš još važnih informacija u headeru koje treba provjeriti, kao group owner, owner, verzija itd. Nakon toga treba čitati datoteku liniju po liniju ii naći control.tar i data.tar. Itd itd.
Rijec je o binarnoj datoteci tako da citanje linije po linije ne dolazi u obzir. Datoteke unutar .deb ne treba traziti - header za prvu datoteku je odmah iza glavnog headera, a header druge datoteke se nalazi na poziciji pocetka prve datoteke + duljini prve datoteke.
Rijec je o binarnoj datoteci tako da citanje linije po linije ne dolazi u obzir. Datoteke unutar .deb ne treba traziti - header za prvu datoteku je odmah iza glavnog headera, a header druge datoteke se nalazi na poziciji pocetka prve datoteke + duljini prve datoteke.
Vrlo krivo. Što ako je datoteka velika? Što ako je oštećena? Kako ćeš to saznati? Iz while petlje? yeah right.
Vidiš, nije dobro pametovati
Rijec je o binarnoj datoteci tako da citanje linije po linije ne dolazi u obzir. Datoteke unutar .deb ne treba traziti - header za prvu datoteku je odmah iza glavnog headera, a header druge datoteke se nalazi na poziciji pocetka prve datoteke + duljini prve datoteke.
Vrlo krivo. Što ako je datoteka velika? Što ako je oštećena? Kako ćeš to saznati? Iz while petlje? yeah right.
Zbilja mi nije jasno o cemu govoris. Ko da zapravo kontriras svojoj poruci, a ne mojoj.