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

Réseau C Discussion :

comment savoir s'il y a des données a lire dans un flux ?


Sujet :

Réseau C

  1. #21
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Points : 325
    Points
    325
    Par défaut
    Citation Envoyé par MarcG
    Il faut que le resultat de rsh finisse par une fin de fichier (fin de commande par exemple (rsh machine ls | prog) la sa fonctionne
    rsh machine | prog attend la fin de finchier (Ctrl-D ou exit ) ceci est normal un rsh simple ouvre une session distante qui ce terminera avec le exit ou CTRL-D.
    Si tu ne veut pas rester en attente je ne vois guere de solution via les pipes, c'est justement la particularité d'un pipe d'être bloquant !
    Quel autre solution adopter ?
    je dois lancer des applis et recuperer ce qu'elles retournent sur leur sortie standard au fur à a mesure....
    (j'en gere une 50aine à la fois donc impossible de rester bloqué...)

  2. #22
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    socket ?
    ou plus "bourrin"
    l'appli distante ecrit dans un fichier et l'appli recuperante lit a intervale regulier lesdit fichiers

  3. #23
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    J'ai pas suivi toute la converse juste traversé vos dires

    Mais la primitive select ne peut pas etre une idée ?

    D'autant plus qu'elle peut etre non bloquante

    Auquel cas sur des pipes(ou fichier en général) il est possible de dire que tu fais une lecture non bloquante(O_NOBLOCK la constante je crois)

    Puis juste tester la valeur de errno derriere si elle vaut EAGAIN pour savoir si tu es sorti parce que le temps est écoulé ou parce que y'a qqchose

  4. #24
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Points : 325
    Points
    325
    Par défaut
    C'est effectivement ce que je viens de voire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fcntl(file,F_SETFL,fcntl(file,F_GETFL)|O_NONBLOCK);
    où file est le file descriptor du flux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int file = fileno(stream);
    et la lecture n'est plus bloquante !
    ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/07/2012, 09h12
  2. Savoir si des données sont écrites sur un flux
    Par zapatta dans le forum Langage
    Réponses: 3
    Dernier message: 07/06/2006, 12h27
  3. Réponses: 3
    Dernier message: 05/05/2006, 11h41
  4. [MySQL] Comment insérer des données contenant un "\" dans
    Par ALEX77 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/09/2005, 16h04
  5. Réponses: 3
    Dernier message: 25/07/2005, 09h40

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