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

C Discussion :

saisie bloquante


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut saisie bloquante
    Salut tout l'monde

    J'aimerai savoir si les fonctions de saisie, scanf, fgets ou gets peuvent etre non bloquante.
    merci

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: saisie bloquante
    Citation Envoyé par shaggadelic
    J'aimerai savoir si les fonctions de saisie, scanf, fgets ou gets peuvent etre non bloquante.
    merci
    Non. La solution sous Unix est d'utiliser select() ou poll()... ou les threads...

    Nota : ne pas utiliser gets() et éviter scanf().

    http://emmanuel-delahaye.developpez....tes.htm#saisie
    http://emmanuel-delahaye.developpez....s.htm#fichiers

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'vois pas comment utiliser le select().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fd_set fd;
    FD_ZERO (&fd);
    FD_SET (0, &fd); //0 pour l'entrée standard (?)
     
    select(blablablabla);
     
    if(FD_ISSET (0, &fd))
    {
     //comment lire sans fgets ou scanf??
    }
    ???

  4. #4
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    On t'a pas dit de lire sans fgets... C'est même plutôt le contraire. Une fois sorti du select, tu testes le descripteur ou il y a des données à récupérer, et en avant Gros Jean ! Avec fgets et tout le toutim

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    ok
    j'ai fait un read, ça marche merci

Discussions similaires

  1. apostrophe bloquant en saisie
    Par Invité dans le forum Langage
    Réponses: 17
    Dernier message: 19/02/2010, 13h12
  2. Read non bloquant, repérer saisie backspace
    Par firemax dans le forum C
    Réponses: 7
    Dernier message: 18/05/2008, 10h00
  3. lecture stdin non bloquante et temps de saisie
    Par TabrisLeFol dans le forum C
    Réponses: 10
    Dernier message: 29/11/2006, 16h46
  4. [Kylix] saisie d'@ IP kylix2 OE
    Par sdoura2 dans le forum EDI
    Réponses: 1
    Dernier message: 10/11/2002, 01h54
  5. [Kylix] crypter la saisie sous kylix
    Par nahmsath dans le forum EDI
    Réponses: 2
    Dernier message: 15/10/2002, 13h16

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