helmut a écrit 6 commentaires

  • [^] # Re: Docs

    Posté par  . En réponse au message utilisation de libtar. Évalué à 1.

    Tu peux m'expliquer commen allouer de la mémoire au pointeur ?

    Je suis nouveau en c, et je pensais qu'en déclarant le pointeur, il n'y avait pas besoin d'allouer de la mémoire, puisque celui-ci utiliserait la mémoire déjà alouer par la fonction tar_open, dans la librairie correspondante...
    Si c'est pas le cas, je comprend maintenant les fautes de segmentation que j'ai obtenu dans d'autre prog. Pourrais tu m'expliquer comment il faut procéder ici (ca me permettra de comprendre mon erreur)

    J'ai bien acheté de livres, mais il manque parfois des exemples concrets, et j'ai toujours besoin de me planter pour enregister ;)
  • [^] # Re: Docs

    Posté par  . En réponse au message utilisation de libtar. Évalué à 1.

    Tu peux m'expliquer commen allouer de la mémoire au pointeur ?

    Je suis nouveau en c, et je pensais qu'en déclarant le pointeur, il n'y avait pas besoin d'allouer de la mémoire, puisque celui-ci utiliserait la mémoire déjà alouer par la fonction tar_open, dans la librairie correspondante...
    Si c'est pas le cas, je comprend maintenant les fautes de segmentation que j'ai obtenu dans d'autre prog. Pourrais tu m'expliquer comment il faut procéder ici (ca me permettra de comprendre mon erreur)

    J'ai bien acheté de livres, mais il manque parfois des exemples concrets, et j'ai toujours besoin de me planter pour enregister ;)
  • # merci à toi

    Posté par  . En réponse au message utilisation de libtar. Évalué à 1.

    Je vais essayer ca demain, étant informaticien, j'ai un peu de mal à me remettre sur l'ordi en ce moment après le boulot...
    Donc si j'ai bien compris, je revois le linkage et je décommente la ligne d'initialisation de la variable type ?

    Un grand, grand merci pour ton aide ! J'espère que ca me permettra d'avancer
  • [^] # Re: Docs

    Posté par  . En réponse au message utilisation de libtar. Évalué à 1.

    En fait j'ai peut-etre trouvé un des problèmes : J'ai ajouté la librairie #include <fcntl.h>, dans laquelle est contenue open() qui semble être utiliser par libtar... (si quelqu'un peut confirmer ?) Par contre, depuis que j'ai ajouté cette entête, il me dit qu'il ne connaît pas la fonction tar_open !! Pourquoi ces deux entêtes ne pourraient-elles pas coexister ? Ou et ce que l'erreur ce situe ailleurs ?
    #ifdef HAVE_CONFIG_H
    #include <config.h>
    #endif
    
    #include <stdio.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <fcntl.h>
    #include <libtar.h>
    
    
    char * list_options = "a:o:";
    int option;
    char * tar_path;
    
    TAR *tarh;
    tartype_t Type;
    int nMode = 0644;
    
    
    int main(int argc, char *argv[])
    {
    
    while ((option = getopt(argc, argv, list_options)) != -1) {
    	switch (option) {
    	case 'a' :
    	fprintf(stdout, "option a : %s\n", optarg);
    	break;
    	case 'o' :
    	fprintf(stdout, "option o : %s\n", optarg);
    	tar_path = optarg;
    	break;
    	case '?' :
    	fprintf(stdout, "wrong option !\n");
    	break;
    	}
    }
    
    //fprintf(stdout, "voilà le path :%s", tar_path);
    /*
    Type.openfunc=open;
     Type.closefunc=close;
     Type.readfunc=read;
     Type.writefunc=write;
    */
    
    tar_open(&tarh, tar_path, &Type, O_RDONLY, 0, TAR_GNU);
    //tar_close(&tarh);
    
    
      return EXIT_SUCCESS;
    }
    
  • [^] # Re: Docs

    Posté par  . En réponse au message utilisation de libtar. Évalué à 1.

    Salut, merci pour cette aide, ca m'a permis d'avancer un poil, même si c'est vraiment dur,

    Voilà où je bute encore :
    lorsque je veux utiliser la fonction,

    tar_open(&tarh, tar_path, &Type, O_RDONLY, 0, TAR_GNU)

    j'obtiens le message suivant :

    /home/wsb/prog/archiver/src/archiver.c:48: erreur: ‘O_RDONLY’ undeclared (first use in this function)
    /home/wsb/prog/archiver/src/archiver.c:48: erreur: (Chaque identificateur non déclaré est rapporté une seule fois


    Or j'ai bien linké la libtar, et dans le manuel, il semble que la valeur de oflags ne peut-être que O_RDONLY ou O_WONLY...
    Est-ce que je dois définir cette constante quelque part ?
  • [^] # Re: Docs

    Posté par  . En réponse au message utilisation de libtar. Évalué à 1.

    Salut, merci pour cette aide, ca m'a permis d'avancer un poil, même si c'est vraiment dur,

    Voilà où je bute encore :
    lorsque je veux utiliser la fonction,

    tar_open(&tarh, tar_path, &Type, O_RDONLY, 0, TAR_GNU)

    j'obtiens le message suivant :

    /home/wsb/prog/archiver/src/archiver.c:48: erreur: ‘O_RDONLY’ undeclared (first use in this function)
    /home/wsb/prog/archiver/src/archiver.c:48: erreur: (Chaque identificateur non déclaré est rapporté une seule fois


    Or j'ai bien linké la libtar, et dans le manuel, il semble que la valeur de oflags ne peut-être que O_RDONLY ou O_WONLY...
    Est-ce que je dois définir cette constante quelque part ?