Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 20. Nov 2018 23:37

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 18. Jun 2006 18:12 
Offline
Benutzeravatar

Registriert: 18. Jun 2006 18:03
Beiträge: 5
Wohnort: Mainz
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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19. Jun 2006 9:42 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de