Probléme commande linux en c

Bonjour,
J'ai un projet en c a faire et je doit exécuté des commande du shell de linux dedans et j'ai trouver la fonction system() qui fonctionne trés bien sauf quand par exemple j'ai un mkdir a mettre et donc je doit mettre le nom du répertoire a creer dedans sauf que je n'y arrive et impossible de trouver comment faire.

Merci.

1 réponse

  1. Contributeur
    Bonjour,

    sauf quand par exemple j'ai un mkdir a mettre et donc je doit mettre le nom du répertoire a creer dedans sauf que je n'y arrive et impossible de trouver comment faire.
    Pas compris... Montre ce que tu souhaites faire avec le code, ça sera plus simple pour t'aider.
    0
    1. printf("Entrer le repertoire que vous voulez creer : ");
      scanf("%ld", &pgr);
      system ( "mkdir %ld", pgr);

      j'aimerais bien pouvoir rentrer le nom du repertoire sans devoir la mettre directement dans le code du programme.
      merci :)
      0
    2. Contributeur
      Dans ce cas, il faut tout d'abord construire la chaîne avec sprintf() / snprintf() par exemple ou strcat().
      Par exemple :
      char chaine[16];
      char pgr[8];
      scanf("%7s", pgr); 
      sprintf(chaine, "mkdir %s", pgr);
      system(chaine);
      

      Note : system() est déconseillé en C... Généralement, on utilise plutôt les fonctions standards ou du système. Tu programmes pour quel OS ?
      0
    3. Merci pour ta réponse et c'est pour ubuntu et du coup qu'est se que je pourrait utiliser a la place de system() ?
      0