Commande system() en C

Résolu/Fermé
triquetrum Messages postés 4 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 28 avril 2008 - 18 avril 2008 à 19:15
triquetrum Messages postés 4 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 28 avril 2008 - 28 avril 2008 à 22:49
Bonjour,

J'ai un soucis avec la fonction system qui exécute des commandes comme dans un terminal. Or voila j'aimerais me servir de la commande shutdown en lui donnant en paramètre un temps qui est dans une variable.. Voici mon bout de code :

system("SHUTDOWN -t %d", temps);

et il n'arrive pas à compiler et me donne l'erreur suivante : "too many arguments to function `system' "

voila, si quelqu'un peut m'aider pour régler ce problème ... ++

4 réponses

mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
18 avril 2008 à 19:21
tu as trop d'arguments la fonction system() ne prend qu'un seul argument en parametre...
0
triquetrum Messages postés 4 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 28 avril 2008
18 avril 2008 à 19:30
Oui c'est effectivement ce que me dit le compilo...
Lorsque je fais mon programme avec "shutdown -r -t 60" par exemple et ça fonctionne impec. Ce que je voudrais c'est remplacer le 60 par la valeur que contiendrait une variable 'temps'.

Et c'est là que ça bloque .. . .
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
18 avril 2008 à 19:54
tu peux le faire en plusieurs etapes en copiant d'abord l'argument dans une chaine puis en utlisant cette chaine dans la fonction system()
char arg_sys[30];
strcpy(arg_sys,"SHUTDOWN -t ");
arg_sys[12]=temps;
arg_sys[13]='\0';
system(arg_sys);
0
triquetrum Messages postés 4 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 28 avril 2008
28 avril 2008 à 22:49
Bonsoir !!

Merci pour ces infos!! Mais je me suis rendu compte que je faisais n'importe quoi dans mon code. Il suffisait de mettre tout simplement temps à la place %d !!!

Bonne soirée et a ++
0