(C) Pb fonction system ()

Résolu
Bince313 -  
 s'lut -
Bonjour, alors voila je voudrais faire un petit programme en C pour permettre d'éteindre l'ordinateur apres un laps de temps en minutes mais j'ai un pb pour mettre la variable "sec" dans la fonction system, quand je lance le programme il fait comme si j'avais appelé l'invite de commande...

Voila le script : (je précise j'ai fait 4h de C a l'ecole jusqu'a présent...)

/************************************************\
|* Programme d'arrêt programmé de l'ordinateur  *|
\************************************************/

// Includes

#include <stdio.h>
#include <conio.h>

// Variables

	int min=0,sec;

// Programme

void main(void)
{
   printf ("Eteindre l'ordinateur dans combien de MINUTES ? ");
   scanf("%d",&min);
   sec = min*60;

   printf("Commande : shutdown -t %d \n\n",sec);   // pour voir si la valeur est bien prise en compte

   system("shutdown -t %d",sec);

   printf("\n\nAppuyez sur une touche pour annuler");

   getch();

   system("shutdown -a");

}

8 réponses

  1. tafiscobar Messages postés 1281 Statut Contributeur 177
     
    salut, tu fais
    char second[50]; 
    sprintf(second, "shutdown -t %d",sec);
    system(second);
    2
  2. Bince313
     
    Merci de vos réponses si rapides !

    Alors...

    Zep3k!GnO :

    Oui, enfin il le prend en compte mais il me met le message d'aide comme quand on tape une mauvaise commande, donc je suppose qu'il met shutdown -t X où X est qqch que je ne sais pas vu que ca foire ^^

    tafiscobar :

    En effet c'est deja mieux, mais en lancant le programme apres avoir entré 89 minutes il a fermé ma session :s lol

    Donc le code avec ta réponse =

    /************************************************\
    |* Programme d'arrêt programmé de l'ordinateur  *|
    \************************************************/
    
    // Includes
    
    #include <stdio.h>
    #include <conio.h>
    
    // Variables
    
    	int min=0,sec;
       char second[50];
    
    // Programme
    
    void main(void)
    {
       printf ("Eteindre l'ordinateur dans combien de MINUTES ? ");
       scanf("%d",&min);
       sec = min*60;
    
       printf("Commande : shutdown -t %d \n\n",sec);   // pour voir si la valeur est bien prise en compte
    
    	sprintf(second, "shutdown -t %d",sec);
    
    	system(second);
    
       printf("\n\nAppuyez sur une touche pour annuler");
    
       getch();
    
       system("shutdown -a");
    
    }


    (je le remet au cas ou j'aurais fait une erreur)
    2
    1. bami ndjayou ludovic
       
      bonsoir j'ai lu le code et je voulais le tester mais il ne compile pas
      le dev c++ détecte une erreur dans l'instruction
      system(second);
      la 27 ième ligne
      je ne comprend pas pourquoi?
      MOI je suis députant et j'aimerais bien connaitre beaucoup de choses merçi de bien vouloir répondre
      0
    2. s'lut
       
      "deputant"
      0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    essaie "shutdown -s -t %d"
    1
  4. Zep3k!GnO Messages postés 2049 Statut Membre 200
     
    Yes CoOl j'attendais de voir ce que tu disais et sniper m'a devancé... je savais qu'il y aavit un -s qui trainait qq part ..

    Gg

    Zep3k!GnO
    -->hi i hi o on va pas o Boulo :D
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Zep3k!GnO Messages postés 2049 Statut Membre 200
     
    "il fait comme si j'avais appelé l'invite de commande" <--- CoMm3nt Ca ?!
    tu veux dire genre il ne prend pas en compte ton shutdown ?!

    Sinon t'as essayé ton shutdown direct en ligne de commande pour savoir si le problème ne vient pas de ta synthaxe ?!

    Zep3k!GnO
    -->hi i hi o on va pas o Boulo :D
    0
  7. Bince313
     
    Bingo !

    Merci snipeur et les autres maintenant ca marche super ^^
    0
  8. nounouma
     
    Bonjour a tous, j'aimerais ecrire un programme en c equivalent a la commande ps -A ou ls -l par exemple:
    (Par la meme occasion jaimerai savoir comment ecrire un programme en c equivalent a ps -A &ls -l)
    Voici mon code

    int main(){
    int return_value;
    return_value= system("ls -l /");
    return return_value;
    }
    ca se compile bine , au niveau de l'execution jai le message "
    bash: ./truc.c permission non autorisee.
    Svp . pourrais je avoir votre aide?
    -1
    1. tuxun Messages postés 388 Statut Membre 34
       
      Salut!

      Ton fichier doit avoir les droits d'execution: chmod +x BINAIRE pour pouvoir le lancer comme ceçi
      $ ./NOMDUBINAIRE
      #sinon tu est limité a ça:
      $ sh NOMDUBINAIRE
      j'espere t'avoir aidé!
      0
  9. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    C'est sur que si tu essais de lancer le .c ça ne va pas donner grand chose...
    -1