🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.os.linux
2 messages
2 total messages Started by Herbert Rosmanith Sat, 25 Nov 1995 00:00
fork/exec frage (programming)
#80
Author: Herbert Rosmanith
Date: Sat, 25 Nov 1995 00:00
45 lines
2699 bytes
hi,

hab da ein kleines problem.
ich moechte den output eines programmes an "less" umleiten.
das ist ja kein problem, einfach "prog | less".
nun moechte ich aber nicht dauernd "prog | less" eintippen.
ich hole mir daher die variable "PAGER" und stopfe mit
fork/pipe/dup/exec den output meines programmes in
"PAGER".

funktionieren tut das so, dass ich nach main() abfrage, ob
PAGER==NULL und wenn ja, fuehre ich das eigentliche programm
aus. wenn nicht, forke() ich und fuehre das prog. noch mal
aus, diesmal mit PAGER=NULL, und zwar mit exec() im child
process. im parent process allerdings mache ich jetzt
ein exec() auf PAGER. das funktioniert auch soweit wirklich.

ich habe nur ein problem:
wenn der output meines programmes wirklich *recht* lange wird,
und ich "PAGER" beende, *bevor* das gefork()te child fertig ist,
dann erbt init dieses child.
es ist aber voellig nutzlos, dass das passiert. mir waere lieber,
wenn das child auch terminiert, wenn der parent terminiert.
dummerweise kann ich aber dem child kein signal() mehr schicken,
weil ich ja schon ein exec() auf PAGER gemacht und keine
kontrolle mehr ueber den ablauf habe.

gibt es eine (einfache) moeglichkeit, dass der child terminert,
anstatt vom init geerbt zu werden ?

(ich koennte mir hoechstens vorstellen, die programmlogik zu
aendern, also kein exec(PAGER) zu machen, sondern zu fork()en
und damit noch immer die kontrolle zu behalten. aber dann haette
ich drei prozesse statt zwei. gefaellt mir nicht....)

/herp
--
-------------------------------------------------------------
Microsoft Network is prohibited from redistributing this work in any
form, in whole or in part. Copyright, Herbert Rosmanith, 1995. 
License to distribute this post is available to Microsoft for US$1,000,
or equivalent local currency. Posting without permission constitutes
an agreement to these terms. Please send notices of violation to
herp@wildsau.idv.uni-linz.ac.at, and Postmaster@microsoft.com
Re: fork/exec frage (programming)
#81
Author: Herbert Rosmanith
Date: Sat, 25 Nov 1995 00:00
5 lines
973 bytes
Herbert Rosmanith (herp@wildsau.idv.uni-linz.ac.at) wrote:
: hab da ein kleines problem.

hat sich eruebrigt. (leider weiss ich nicht, wo der CANCEL knopf
im tin ist).
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads