Retourner aux forums || Retourner au forum Programmation.c
Programmation.c : Comment lire un ficher taré sans "detarer"
Posté par shal () le 28 avril 2008Je dois stocker plusieurs gros fichiers dans un seul . évidement je pense a tar . Mais je dois aussi y avoir accès SANS "detarer" (ce serait trop lourd).
J'ai regardé libtar mais soit j'ai pas compris soit cela ne permet pas d'accéder au fichiers.
Connaissez-vous un moyen/librairie pour faire cela ?
Il n'y a pas besoin de compresser.
Toute autres alternative est la bienvenue, j'ai pas l'impression que je soit le premier a avoir ce genre de besoin.
Les fichiers sont gros (jusqu'au Giga) et je ne sais pas quel taille ils vont faire à la fin donc difficile de faire un structure dans un fichier et juste de simple fseek.
merci
> Lire le message (8 commentaires, moyenne: 2,4).
Si j'ai bien compris ...
Tu veux pouvoir extraire de ton tarball un seul fichier sur les X qui y sont archivés ?
[binarym@gcolangelo]:/tmp/noobz% touch 1 2 3 4
[binarym@gcolangelo]:/tmp/noobz% tar cf plop.tar 1 2 3 4
[binarym@gcolangelo]:/tmp/noobz% rm 1 2 3 4
[binarym@gcolangelo]:/tmp/noobz% tar xf plop.tar 3
[binarym@gcolangelo]:/tmp/noobz% ls
3 plop.tar
[binarym@gcolangelo]:/tmp/noobz%
Pas très clair
Ta demande n'est pas très claire; de quelle façon souhaites-tu pouvoir accéder au contenu de l'archive ?
Est-ce que tu veux pouvoir monter l'archive pour pouvoir accéder au contenu avec un shell ou un explorateur ? FUSE peut faire cela avec certains formats; Gnome & KDE viennent avec leurs propres solutions pour faire cela aussi.
Si c'est pour lire depuis un programme; il existe des librairies qui permettent d'accéder au contenu, comme celle que tu cites.
tar est un système prévu pour les archives sur bande. Les fichiers sont présents séquentiellement, et il n'existe aucun index. Il est nécessaire de parcourir tout le fichier pour en retrouver un particulier; ce qui n'est pas génial pour les performances.
zip est un format également très répandu qui contient un index à la fin du fichier; cela permet d'accéder à un fichier en particulier sans avoir à parcourir tout le fichier. A mon avis c'est bien plus adapté.
Il existe encore d'autres formats, cpio, ar... regarde ce que chacun propose, avec quelle facilité on manipule les archives et on accède aux contenus.
-
[^]Re: Pas très clair
Posté par NeoX () le 28/04/2008 à 16:46. (lien). Évalué à 3.on peut meme penser au format iso qui se monte tres bien en loop
tous les fichiers dans un dossier
mkisofs dossier -o mon_fichier.iso
puis
mount -o loop mon_fichier.iso /mnt/mon_archive
inconvenient :
tu ne peux pas reecrire dedans.
avantage :
tu peux graver ce fichier iso sur un support cd/dvd en demandant de graver à partir d'une image de disque--
Apprendre par les autres, c'est bien.
Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux-
[^]Re: Pas très clair
-
[^]Re: Pas très clair
Posté par shal () le 28/04/2008 à 17:57. (lien). Évalué à 1.Zut, il manque un truc a cette solution.
En effet a la lecture on aura pas besoin de detarer l'archive pour avoir accès aux fichiers.
par contre à la création il y aura une duplication de mes fichiers.
Et comme cela se compte en giga, je vais avoir des pertes de performances.
Je vais voir du coté de unionfs ou ceux utiliser par les liveCD-
[^]Re: Pas très clair
Posté par totof2000 () le 29/04/2008 à 22:15. (lien). Évalué à 2.par contre à la création il y aura une duplication de mes fichiers.
C'est le cas pour n'importe quelle solution d'archivage .... (c'est d'ailleurs la raison d'être de l'archivage : dupliquer les informations pour avoir un état de celles-ci à un instant T)
quand tu crée un CD par exemple tu peux créer une image iso sur ton disque, ou la graver directement, il y a toujours duplication d'informations. La question est de savoir ou elles seront dupliquées.
-
-
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.c



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.