Bonsoir,
[note: je n'ai pas d'accents sur ce clavier... dsl..]
Je développe actuellement un gestionnaire de mémoire et de ressources.
Pour faire simple, les ressources sont des fichiers tar avec a leur racine un fichier "index.rl" de la forme:
Ces archives sont générées a l'aide d'un script python.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #Generated Sat Nov 6 19:37:21 2010 #General format: id | ext | sha test.plop.tst.popcork wav 72c56f548f455a4c6ec951fafd602071dcb08985bbba4e47ecfd3c3e test.plop.tst.laugh mp3 2afc25d5a7866224a254bb7a2555a6b21985b1b7d295f9d17df9cf47 test.plop.cern jpg 17ca7618ba4a42ac6f2009a3f99959abeec1a4fc2a7d2a11b97a5bd2 test.plop.warningsignegg gif 078daa99dba0ec91ae98e557968e6c1cd6c6a75fb6477caf1b29170d
Je cherche maintenant a ouvrir pour le moment le fichier d'index, et plus tard, forcement, les ressources qui sont dans l'archive.
Après avoir pas mal cherche, je suis tombe sur la libtar qui apparemment répond a mes besoins, mais malheureusement elle est très mal documentée..
Après avoir lu les pages de man, je crois avoir réussi a ouvrir l'archive:
Mais la ligne tar_extract_regfile(tarFile, "index.rl"); ne fonctionne pas comme je m'y attendais... Elle ne renvois pas de descripteur de fichier, et je ne vois pas comment dire ou je veux ou le fichier soit décompressé...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 void ResManager::loadPackage(const char* dir){ //Open the tar file and read the index int fileFd; TAR* tarFile; if(tar_open(&tarFile, "/home/seeme/workspace/sEngine/src/PackageManager/Level1.tar", NULL, O_RDONLY,TGREAD, TAR_VERBOSE) == -1) std::cout<<"ERROR OPENING FILE"<<std::endl; th_read(tarFile); tar_extract_regfile(tarFile, "index.rl"); tar_close(tarFile); }
Bref, je bloque... Si vous aviez 2 minutes pour me filer un coup de main, merci d'avance!
Au pire, je suis prêt a considérer d'autres formats d'archives. Ce n'est pas la compression qui m'intéresse, mais le regroupement d'une arborescence de fichiers dans un seul fichier, un peu comme les .pak...
Partager