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.
    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 :)
    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 ?
    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() ?