Probléme commande linux en c

azerty1705 Messages postés 12 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
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. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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. azerty1705 Messages postés 12 Statut Membre 2
       
      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. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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. azerty1705 Messages postés 12 Statut Membre 2
       
      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
    4. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Pour la création de répertoire, tu as la fonction posix mkdir().
      https://linux.die.net/man/2/mkdir
      0