Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[netbsd] programmation systeme c

2 réponses
Avatar
nico
bonsoir,
j ai un petit probleme:
je tente de faire un programme qui reproduit les backquote du
shell. ex: echo `pwd`
Celui ci marche tres bien quand le programme forke n'utilise pas
d'interface (termcaps, ncurses...).
Par contre des que celui ci utilise une interface (comme pine)
il recoit automatique un SIGHUP. Je ne sais absolument pas la
raison de ce signal.
En gros je fork un proc , je cree un nouvau groupe pour ce
process, et l'execute. Pendant ce temps dans le pere je fais un
read bloquant sur le pipe que j ai precedement ouvert et ou le
proccess ecrit(j ai effectue un dup2).
J ai essaye d attacher le pgid du process au tty (foreground):
celui lance l interface mais plus moyen de ne rien faire.

Merci d'avance pour vos reponses.

ps: j ai cross-post sur os.unix ne sachant pas lequel des deux
etait le plus approprie
--
Nico

2 réponses

Avatar
Jacques Caron
Salut,

On Mon, 7 Jun 2004 21:42:54 +0200, nico wrote:

je tente de faire un programme qui reproduit les backquote du
shell. ex: echo `pwd`
Celui ci marche tres bien quand le programme forke n'utilise pas
d'interface (termcaps, ncurses...).


On sort un peu du simple backquote...

Par contre des que celui ci utilise une interface (comme pine)
il recoit automatique un SIGHUP. Je ne sais absolument pas la
raison de ce signal.
En gros je fork un proc , je cree un nouvau groupe pour ce
process, et l'execute. Pendant ce temps dans le pere je fais un
read bloquant sur le pipe que j ai precedement ouvert et ou le
proccess ecrit(j ai effectue un dup2).


Et stdin, il lui arrive quoi? S'il est fermé ça risque de pas lui
plaire... Un autre pipe pourrait être utile, même si on n'écrit jamais
rien dessus, juste histoire que le processus lancé puisse faire des choses
dessus (les opérations sur le terminal se font sur stdin en général).
Evidemment, s'il cherche vraiment, il va se prendre plein d'erreurs en
essayant, et dans ce cas il faut utiliser un pty qui va vraiment lui faire
croire qu'il parle à un terminal alors que c'est un autre process qui
récupère tout ça (c'est comme ça que telnet, ssh & co fonctionnent). Cf
man pty, man 4 pty.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/

Avatar
nico
On Mon, 07 Jun 2004 22:57:09 +0200
Jacques Caron wrote:
Et stdin, il lui arrive quoi? S'il est fermé ça risque de pas
lui
[...]

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/


merci pour cette reponse complete je vais tester ca.

--
Nico