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

Windows Discussion :

Pseudo-terminal sous windows ?


Sujet :

Windows

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Points : 21
    Points
    21
    Par défaut Pseudo-terminal sous windows ?
    Bonjour

    Je suis sur un projet de pseudo-terminal sous Linux. Sous mon système c'est facile, j'ouvre /dev/ptmx et tout ce qui suit, et j'ai mes deux fichiers spéciaux maitre et esclave.

    Maintenant je me souci du portage windows, et malgré toutes mes recherches je ne trouve rien concernant l'émulation de tty sous ce système.

    Pouvez-vous m'aider ?

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Le seul truc qui fait quelque chose se comportant de loin comme une Console, c'est Powershell. Et je n'ai aucune idée de comment il fait.

    Edit: Par contre, apparemment son code est centralisé dans Microsoft.PowerShell.ConsoleHost.dll. Peut-être pourras-tu obtenir plus d'infos en la désassemblant...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Après examens complémentaires: Ah ben non, Powershell utilise juste une console normale, avec les mêmes forces et faiblesses.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    À vrai dire c'est cette console normale que je pensais refaire. Il doit bien exister des IDE sous windows qui ont une console intégrée ? je voudrais savoir comment ils font... au pire j'irai voir le code mais c'est galère, j'ai pas windows. En tout cas il est hors de question que je dépense mon temps à désassembler du code MS

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Eh bien, tu peux reproduire un minimum de fonctionalité avec des tubes anonymes (voir Creating a Child Process with Redirected Input and Output) mais dans ce cas, ton programme ne supportera pas des fonctions comme GetConsoleMode() (ou peut-être même WriteConsole()).

    Le vrai défi serait de supporter tout cela.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Salut,

    Citation Envoyé par Médinoc Voir le message
    Le seul truc qui fait quelque chose se comportant de loin comme une Console, c'est Powershell. Et je n'ai aucune idée de comment il fait
    Ben y'a telnet non ? Sinon, des programmes libre (?) comme putty (?) avec codes sources disponibles, ça devrait le faire.

    Sinon, si tu "pouvais" développer ce que tu entends
    par console normale, avec les mêmes forces et faiblesses.
    et
    le vrai défi serait de supporter tout cela
    ce serait cool. Merci.

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    En clair:
    • Créer une fenêtre qui ressemble à une console et où tu peux afficher du texte: Facile, je l'ai déjà fait.
    • Créer une fenêtre dans laquelle tu peux exécuter un programme console arbitraire: super dur.


    Je croyais que Powershell faisait le second suite à un truc que j'avais lu sur le web, mais en fait il utilise juste la Console normale de Windows.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Merci pour ta réponse Médinoc.

    Citation Envoyé par Médinoc Voir le message
    [*]Créer une fenêtre dans laquelle tu peux exécuter un programme console arbitraire: super dur.
    Un truc dans le genre de "cmd.exe", c'est ça ? Genre y exécuter un programme console sans lancer une nouvelle instance ?

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Un truc dans le genre de la fenêtre où s'exécute cmd.exe, et qui réponde aux demandes des processus fils. Imagine un IDE qui lance un compilateur dans un pseudo-terminal, et où le compilateur pourrait appeler des fonctions comme GetConsoleMode() sans que la fonction échoue.

    cmd.exe lui-même n'est qu'un programme console comme les autres.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Là franchement, j'ai rien compris. J'ai cherché ce que pouvait être un pseudo-terminal, mais c'est pas clair contrairement au terminal tout court. Je vais voir pour fouiller plus en détail. En tout cas merci Médinoc pour ta serviabilité.

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    C'est seulement maintenant que je vois que j'ai répondu à deux personnes différentes.

    Et je me rends compte que je ne sais pas non plus ce que veux unomadh exactement. Le problème en gros, c'est que "pseudo-terminal" peut avoir plusieurs définitions, selon qu'on parle de communication (telnet, PuTTY, HyperTerminal) ou d'exécution locale de programme console (et dans ce dernier cas, du niveau de fonctionnalité qu'on veut supporter).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Points : 21
    Points
    21
    Par défaut
    Médinoc, tu as parfaitement compris ce que je voulais au vu de tes explications à minnesota

    Un pseudo-terminal (ou terminal virtuel) c'est c'est un truc qui reproduit le comportement d'un terminal. En fait sous windows on n'a pas accès à un terminal (pour que j'en sais je ne crois pas qu'il y en ai même un). En revanche sous linux il y a les tty (terminaux, les trucs derrière ctrl+alt+fx) et les pts (pseudo-terminaux, comme la console windows, konsole ou gnome-terminal)
    Je fais la distinction par souci d'exactitude.

    Donc toujours pas de solution ?

  13. #13
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Peut-être un tty avec cygwin ? Enfin, si ça existe/ou fonctionne.

  14. #14
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Il n'est pas trop dûr de faire un terminal où exécuter des programmes console basiques: Avec ceci on peut récupérer la sortie normale d'un programme, surtout s'il sort seulement de l'ASCII.
    Par contre:
    • Les fonctions élaborées liées explicitement à la console ne marcheront pas (GetConsoleMode(), WriteConsole())
    • J'ai déjà vu des problèmes de synchronisation parce que le fflush(stdout) sur \n n'est pas réellement automatique sous Windows.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  15. #15
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 340
    Points : 177
    Points
    177
    Par défaut
    MSYS avec le support rxvt
    L'Opus attire les Prélats

Discussions similaires

  1. Equivalent de schtasks.exe sous Windows 2000 Terminal Server
    Par Ohemeg dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 20/07/2015, 11h00
  2. Réponses: 1
    Dernier message: 08/03/2011, 14h57
  3. terminal serveur sous windows 2003
    Par ulysse031 dans le forum Windows Serveur
    Réponses: 8
    Dernier message: 24/05/2008, 15h11
  4. commande system() ouvre un terminal sous windows
    Par malk.zameth dans le forum Windows
    Réponses: 4
    Dernier message: 02/09/2007, 19h41
  5. Téléchargement dans le terminal sous Windows.
    Par arhr1 dans le forum Windows
    Réponses: 4
    Dernier message: 17/04/2007, 14h55

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