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:

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
Ces archives sont générées a l'aide d'un script python.

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:

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);
}
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é...

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...