Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Descriptor schliessen mit einem Signal-Handler

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
columbus



Anmeldungsdatum: 18.06.2006
Beiträge: 5
Wohnort: Mainz

BeitragVerfasst am: 18. Jun 2006 18:12   Titel: Descriptor schliessen mit einem Signal-Handler

Hallo zusammen,
ich habe eine kurze prinzipielle Frage. Ich möchte einen Signal-Handler schreiben, der wenn er aufgrufen wird, alle Dateien, Sockets und was sonst noch so von seinem Prozess konsumiert wird schliesst. Dazu brauch er natürlich die Descriptoren, da aber einem Signal-Handler immer nur eine integer-Zahl übergeben werden kann, muß er sich die Descriptoren woanders holen. Vielleicht stehe ich auch auf dem Schlauch, aber muß ich hier wirklich mit globalen Variablen arbeiten? Ich meine ich kann natürlich auch Funktionen erstellen, die das schliessen übernehmen, aber die haben dann das gleiche Problem.

Gibt es da eine elegante Lösung?

Gruss Christian
 
Benutzer-Profile anzeigen Private Nachricht senden

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 19. Jun 2006 9:42   Titel:

Die elegante Lösung sieht vor, dass man sich bei Dateien nicht darum kümmert -- das macht der Kernel automatisch.

Bei Sockets müssen die anderen Prozesse erkennen, dass ihr Partner abgebrochen wurde -- Es gibt da ein paar Signale (0 Byte gelesen, SIGPIPE), die man kontrollieren sollte.

Signalhandler für den Abbruchfall braucht man nur, wenn man noch irgendwas in der Datei unterbringen muss, um diese korrekt abzuschließen. Das ist aber nicht zu empfehlen, da es potentiell Fehler auslösen kann, die dann wieder einen Signalhandler aufrufen.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy