• [^] # Re: Plus d'infos

    Posté par . En réponse au message Gérer deux sorties écran avec un programme en C. Évalué à 5.

    Bon, en fait, je dis GTK comme ça, mais c'est loin d'être la bibliothèque la plus facile à utiliser ! Par contre, elle est bien documentée ...

    Sinon, je veux dire que si tu comptes utiliser deux consoles, il faudra déjà ouvrir toi-même ces deux consoles. C'est normal dans le cas de la première puisque c'est depuis cette console que tu vas lancer ton programme. En outre, les flux d'entrée et de sortie seront ouverts pour toi.

    Ensuite, pour gérer une deuxième console, essaie de voir comment on peut écrire dedans. La solution, c'est que chaque console est reliée à un fichier spécial (un /dev) qui permet de communiquer avec.

    Plus précisément : dans le cas de terminaux physiques réels, ceux-ci sont en général reliés sur le port série, il faut donc envoyer des données sur ce port pour qu'elles apparaissent sur le terminal. Pour ce faire, on écrit dans /dev/ttyS0, par exemple.

    Quand on utilise des terminaux virtuels en nombre indéfini depuis un serveur X, ils utilisent des fichiers spéciaux qui se comportent comme des pipes dans /dev/pts/... qui simulent le canal normalement emprunté.

    Essaie d'ouvrir un terminal, puis un second. Dans le deuxième, tapes tty. Tu sauras à quel fichier ton xterm est attaché. Par exemple /dev/pts/1

    Ensuite, depuis le premier, essaie de taper « echo "Bonjour" > /dev/pts/1 » et regarde ce qu'il se passe. Note : il se peut que tu n'aies pas les droits pour le faire.

    L'idée est donc d'utiliser des fopen() ordinaires pour ouvrir des fichiers en lecture et écriture vers ce /dev et dont tu noterais les descripteurs « auxin » et « auxout », par exemple (par analogie avec stdin et stdout).

    Ensuite, tu choisis la console dans laquelle tu veux travailler et tu les gère toutes deux de la même façon.