geFORK()tes Kind schliesst fremde sockets

martin.heyer@gmx.de martin.heyer at gmx.de
Sam Sep 13 14:32:22 CEST 2003


Hallo Tlug. 
Ich habe ein Serverprogramm, welches die Clients zwecks Absturzsicherheit 
mit fork() in einer extra-Routine behandelt (Wenn diese Segfaultet soll der
Rest 
stehen bleiben). 
Diese Routine braucht eigentlich nur das Socket vom accept(), und das
kopiert 
fork(). Dummerweise scheint der gefork()te Kindprozess beim finalen return()

automatisch die anderen FDs (so auch das socket fuers listen() ) zu
schliessen. 
(Sagt strace). 
Habe ich da eine Option (sowas wie CLOEXEC...) uebersehen oder ist das 
ganze von prinzipieller Natur? 
 
Thnx, 
Martin