Probléme commande linux en c

Fermé
azerty1705 Messages postés 11 Date d'inscription dimanche 13 décembre 2015 Statut Membre Dernière intervention 9 décembre 2016 - Modifié par azerty1705 le 13/12/2015 à 21:37
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 13 déc. 2015 à 23:47
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.
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
13 déc. 2015 à 22:44
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
azerty1705 Messages postés 11 Date d'inscription dimanche 13 décembre 2015 Statut Membre Dernière intervention 9 décembre 2016 2
13 déc. 2015 à 22:58
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
Modifié par fiddy le 13/12/2015 à 23:27
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
azerty1705 Messages postés 11 Date d'inscription dimanche 13 décembre 2015 Statut Membre Dernière intervention 9 décembre 2016 2
13 déc. 2015 à 23:32
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
13 déc. 2015 à 23:47
Pour la création de répertoire, tu as la fonction posix mkdir().
https://linux.die.net/man/2/mkdir
0