[C/UNIX] Curses: faire un printf normal

Curses: faire un printf normal [C/UNIX] - C - Programmation

Marsh Posté le 15-04-2004 à 18:00:50    

j'ai un ptit pb,  
j'ai un prompt qui attend une commande, la readline est geree par la lib curses, le pb c que le seul moyen d'afficher qquechose, c d'utiliser printw.. le pb c que j'execute des commandes (fork+execve) et donc elles utilisent des printf (write) de base, pas de printw... ce qui gene un peu les curses, qui ignorent completement tout ce qui n'est pas affiche avec ses fonctions...
 
si qqu'uyn a une reponse, bienvenue :D
 
 
la doc en rajoute une couche:
scanw(), printw(): Works just like scanf() and printf(), but in a Curses environment. Avoid use of scanf() and printf() in such an environment, which can lead to bizarre results.
 
 
help please :cry:


Message édité par Suri le 15-04-2004 à 18:02:51

---------------
Suri.morkitu.org : Balades au coeur de la ville...
Reply

Marsh Posté le 15-04-2004 à 18:00:50   

Reply

Marsh Posté le 15-04-2004 à 18:03:03    

J'ai une reponse !

Reply

Marsh Posté le 15-04-2004 à 18:51:20    

Bon, je me lance, même si à mon humble avis, suri est 1 000 000 de * plus fort que moi en C.
 
Avec ma petite expérience en curse, je peut te dire que j'ai jamais trouvé le moyen de faire passer du printf/scanf quand curse était activé.
 
J'imagine donc que la seule solution serait de forker, de faire un pipe, de faire en sorte que le fils redirige stdin et stdout dans l'pipe, et que le père travaille en collaboration avec le fils pour tout cela...

Reply

Marsh Posté le 15-04-2004 à 19:01:22    

Pour détailler, tu vas faire un process qui va jouer le rôle de proxy, de traducteur, entre le process qui tourne dans l'execve et ton itnerface en curse...
 
Une chose est claire : c'est pas optimal, mais c'est tout ce que j'ai à te proposer :/

Reply

Marsh Posté le 15-04-2004 à 19:03:00    

Tetedeiench a écrit :

Bon, je me lance, même si à mon humble avis, suri est 1 000 000 de * plus fort que moi en C.
 
Avec ma petite expérience en curse, je peut te dire que j'ai jamais trouvé le moyen de faire passer du printf/scanf quand curse était activé.
 
J'imagine donc que la seule solution serait de forker, de faire un pipe, de faire en sorte que le fils redirige stdin et stdout dans l'pipe, et que le père travaille en collaboration avec le fils pour tout cela...


 
ouais mais ya vraiment pas moyen de faire ca avec des pipes.. au pire, on va tout refaire en terminfo, avec des bons vieux termcaps moisis.
 
mais bon, ya deja des pipes un peu partout (a cause ben du pipe et des redirections du shell) et ca empiete sur la partie de qqu'un d'autre qui a pas le tps de se faire chier avec ca en l'integrant.
 
enfin... merci pour ton idee qd meme :)
(je suis pas 100000 fois meilleur que toi en C, surement pas :D)


---------------
Suri.morkitu.org : Balades au coeur de la ville...
Reply

Marsh Posté le 15-04-2004 à 19:10:27    

suri a écrit :


 
ouais mais ya vraiment pas moyen de faire ca avec des pipes.. au pire, on va tout refaire en terminfo, avec des bons vieux termcaps moisis.
 
mais bon, ya deja des pipes un peu partout (a cause ben du pipe et des redirections du shell) et ca empiete sur la partie de qqu'un d'autre qui a pas le tps de se faire chier avec ca en l'integrant.
 
enfin... merci pour ton idee qd meme :)
(je suis pas 100000 fois meilleur que toi en C, surement pas :D)


 
Ben de rien, termcap et co, je connais pas :/
 
( et si tu l'es, je t'assure :D )

Reply

Marsh Posté le 16-04-2004 à 09:58:00    

Reply

Marsh Posté le 16-04-2004 à 16:57:20    

tu uppes ?

Reply

Marsh Posté le 17-04-2004 à 11:21:39    

il uppe.

Reply

Marsh Posté le 17-04-2004 à 11:24:56    

nan mais vous fatiguez pas :D
j'ai fait qque recherches moi meme (je postais pour un pote la) et tout l'affichage des curses s'effectue sur le fd stdscr (qui est le handle sur la fenetre curses) donc c normal que ce qui est ecrit sur stdout s'affiche pas (ou pas correctement)
 
jpense qu'on va laisser tomber et se rabattre sur une techno encore plus vieille.... :D
 
merci :)


---------------
Suri.morkitu.org : Balades au coeur de la ville...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed