x

Re: osmconvert o5mfilter


Geschrieben von Marqqs (Gast) am 05. Juni 2011 13:11:32: [flux]

Als Antwort auf: osmconvert o5mfilter geschrieben von viw (Gast) am 30. Mai 2011 07:43:

kellerma wrote:

hab heut mehrmals festgestellt, dass die temporaere Datei nicht immer geloescht wird am Ende von o5mfilter, vor allem wenn der output ge-piped wird.

Hallo, ja, ist mir auch schon mal aufgefallen. Zunächst: es ist unschädlich, wenn die temporären Dateien stehen bleiben, sie werden beim nächsten Lauf wieder gelöscht. Aber es schaut natürlich doof aus und ist nicht sauber.

Gelöscht werden die Dateien in einer atexit()-Prozedur. Anscheinend wird diese Prozedur nicht aufgerufen, wenn man das Programm nicht normal beendet, sondern abbricht. Das passiert in einer Pipe offenbar automatisch, wenn die nachgelagerten Programme schneller fertig werden als o5mfilter bzw. osmconvert, wenn also nicht bis zum Ende der Pipe gelesen wird. Beispiel: das Kommando "head".

Im Moment hab ich noch keine Idee, wie ich das ändern kann... ich werd eine Runde drüber nachdenken. :-)

EDIT:
Erledigt (Version 0.1L). Hab einen kleinen Signal-Handler reingehängt, der "SIGPIPE" abfängt, eine Meldung bringt und das Programm ordentlich beendet.
Das Signal "SIGPIPE" wird vom Programm immer dann empfangen, wenn die Output-Pipe gebrochen ist, wenn sich z.B. das nachgeschaltete Programm schon beendet hat.