IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Cherche une fonction


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Par défaut Cherche une fonction
    Je code une fonction similaire a "tar". Je recherche donc une fonction qui permet d'inclure un/des fichier(s) dans un autre fichier.

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void mafonction(archive, fichier1, fichier2, fichier3)
    {
      mkdir archive;
      cp fichier1 archive;
      cp fichier2 archive;
      cp fichier3 archive;
    }

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Il n'y en a pas.
    Mais tu peux faire ça toi-même, la seule condition vraiment nécessaire est de connaîte la taille d'un fichier avant de l'écrire dans l'archive.

    Tout ce que tu as faire, c'est définir un format d'archive (binaire).
    Exemple simple, pas du tout optimisé mais qui fait le boulot:
    1. Taille du nom du premier fichier, en bytes: 2 bytes suffisent généralement pour ça, big-endian.
    2. Nom du premier fichier, encodage au choix mais toujours le même (ici, on va s'en moquer et n'accepter que l'ASCII pur, par exemple).
    3. Taille du premier fichier. Si tu limites la taille à 4Go-1 ou à 2Go, tu peux te contenter d'un entier 32 bits (généralement 4 bytes). Sinon, il faudra choisir un entier 64 bits. Big-endian dans les deux cas.
    4. Contenu brut du premier fichier.
    5. Taille du nom du second fichier, etc.

    Chaque étape doit être une brique de base facile à implémenter. Un fichier comme je l'ai dit contient, à moins d'une boulette, toutes les informations nécessaires pour désarchiver correctement.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. cherche une fonction system avec capture de la sortie
    Par ChipsterJulien dans le forum C++
    Réponses: 4
    Dernier message: 28/02/2008, 16h47
  2. Je cherche une fonction equivalente de "gtk_image_clear"
    Par majed_la7 dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 26/11/2007, 18h09
  3. Réponses: 1
    Dernier message: 16/06/2007, 21h44
  4. Cherche une fonction standard.
    Par saih_tam dans le forum C
    Réponses: 25
    Dernier message: 24/05/2006, 17h20
  5. cherche une fonction qui permet de faire une recherche
    Par vbcasimir dans le forum Langage
    Réponses: 7
    Dernier message: 01/09/2005, 17h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo