IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Comment interrompre mon programme en C ?


Sujet :

Linux

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Points : 23
    Points
    23
    Par défaut Comment interrompre mon programme en C ?
    Salut,

    Je suis en train de programmer un jeu en C (en modes caractères) sous Linux.
    Et je vous demande la bibliothèque qui me permet de donner le joueur la possibilité d'interrompre le jeu a n'importe quel moment et de revenir au jeu s'il veut.
    Ce que j'ai fait est un simple test de saisie dans le programme principal mais ça ne me permet pas la contrainte que l'interruption soit a n'importe quel moment.
    veillez m'aider s'il vous plait.

    merci d'avance.

  2. #2
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    control + Z et ensuite fg ne marchent pas?

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Points : 23
    Points
    23
    Par défaut
    merci monsieur pour votre aide.
    ctrl + z quitte totalement le programme mais ds mon jeu je veut simplement donner au joueur la possibilité a tout moment s'il appuie sur 'q' par exp il quitte (après un prompt) le jeu. je me demande si signal.h le permet.
    et merci

  4. #4
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    si tu es effectivement sous linux c'est un comportement natif des programme lancés en ligne de commande.

    cf ce lien pour avoir quelques explication supplémentaires.
    http://linuxreviews.org/beginner/jobs/

    exemple avec des commentaire sur ce que j'ai fait en vert:
    cat test_bg.c
    #include <stdio.h>
    #include <stdlib.h>


    int main() {
    unsigned int counter;

    printf("C'est parti\n");
    for (counter = 0 ; counter != 0xffffffff ; counter ++) {
    printf("---- %d\n", counter);
    sleep(1);
    }
    return EXIT_SUCCESS;
    }
    [ffrances@hermes ~]$ gcc test_bg.c -o test_bg && ./test_bg
    C'est parti
    ---- 0
    ---- 1
    ---- 2

    [1]+ Stopped ./test_bg // Ici j'ai fait un ctrl+z
    [ffrances@hermes ~]$ fg // j'ai la main sur mon shell, je le remet en tache principale.
    ./test_bg
    ---- 3
    ---- 4
    ---- 5
    ---- 6

    [1]+ Stopped ./test_bg // je refait un ctrl+z
    [ffrances@hermes ~]$ bg // je met mon programme en tache de fond.
    [1]+ ./test_bg &
    [ffrances@hermes ~]$ ---- 7 // j'ai le prompt mais le programme s'execute en parallèle.
    ---- 8
    ---- 9
    ---- 10
    fg---- 11 // je le remet en tache principal.

    ./test_bg
    ---- 12
    ---- 13

    // la je fait ctrl+c mon programme se termine.

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Il faut que ton descripteur d'entrée soit en mode non bloquant.
    voir : ioctl, select ou poll.

    Ton code dispose bien d'une boucle principale pour gérer les entrées ?

Discussions similaires

  1. Comment faire mon programme en pseudo code ?
    Par cyph3r dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 04/06/2008, 18h34
  2. [VBA-E] comment lancer mon programme grace a un bouton ?
    Par Anorgasmophobie dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2007, 22h24
  3. Comment exécuter mon programme en dehors de Netbeans?
    Par julie_the_touch dans le forum Langage
    Réponses: 4
    Dernier message: 13/04/2007, 19h18
  4. [Fortran 95] Comment exécuter mon programme ?
    Par silver2 dans le forum Fortran
    Réponses: 1
    Dernier message: 15/01/2007, 17h15
  5. Réponses: 9
    Dernier message: 07/11/2006, 15h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo