Probléme commande linux en c

azerty1705 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 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.
A voir également:

1 réponse

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