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 :

Savoir s'il y a un flux d'entrée


Sujet :

C

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Par défaut Savoir s'il y a un flux d'entrée
    Bonjour,

    Voilà, je souhaite savoir quel est le moyen pour préciser à son programme qu'il y a un flux d'entrée ou non ?

    Je m'explique, j'ai une fonction par exemple, read.

    Ainsi, quand je l'appelle ./read

    La fonction peut très bien récupérer un flux d'entrée ou ne pas en récupérer. Selon qu'il y en ai un ou pas, celui si lance une fonction approprié.

    J'ai tenté de faire :

    Mais en vain.

    Merci d'avance.

  2. #2
    Expert éminent
    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
    Par défaut
    Citation Envoyé par cnguyen Voir le message
    Voilà, je souhaite savoir quel est le moyen pour préciser à son programme qu'il y a un flux d'entrée ou non ?

    Je m'explique, j'ai une fonction par exemple, read.

    Ainsi, quand je l'appelle ./read

    La fonction peut très bien récupérer un flux d'entrée ou ne pas en récupérer. Selon qu'il y en ai un ou pas, celui si lance une fonction approprié.

    J'ai tenté de faire :
    Mais en vain.
    Normal. 1er information du cours de C au chapitre "flux" : Les flux stdin, stdout et stderr sont ouverts par défaut.

    Si tu lances ./read, stdin est probablement connecté au clavier.
    Si tu lances ./read < fichier.txt, stdin prend ses données ligne par ligne dans fichier.txt.

    Alors tu cherches à faire quoi exactement ?

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Par défaut
    En fait,

    Quand j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    less "fichier" | ./read
    La fonction read lance la fonction readPipe

    Et quand je n'ai pas "less", cad d'argument avant la fonction, alors ca lance
    readNonPipe.

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Si j'ai bien compris et que tu es sous Unix, stat -- S_ISFIFO -- et isatty sur STDIN_FILENO devrait t'aider. stat/S_ISFIFO fait plutot ce que tu demandes. isatty fait plutot ce que je crois qui est necessaire si tu as reellement besoin de faire la difference.

Discussions similaires

  1. Rediriger le flux d'entrée généré par la classe Robot
    Par Capashen dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 07/05/2008, 19h36
  2. flux d'entrée caractere &
    Par kassim34 dans le forum Flex
    Réponses: 1
    Dernier message: 31/07/2007, 17h02
  3. image à partir du flux d'entrée standard
    Par gege64 dans le forum Qt
    Réponses: 2
    Dernier message: 05/11/2006, 18h14
  4. Réponses: 3
    Dernier message: 08/08/2006, 02h50
  5. Envoi d'un flux audio entre 2 PC
    Par TheDarkLewis dans le forum Windows
    Réponses: 2
    Dernier message: 30/08/2004, 02h02

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