Upewnij się, że wykonanie kodu Objective-C przed zakończeniem aplikacji Cocoa
Załóżmy, że aplikacja kakaowa musi wykonać jakąś niezwykle ważną operację celową przed wyjściem (z jakiegokolwiek powodu - awarię lub zamknięcie).
Czy jest możliwe zapewnienie wykonania dowolnego kodu obiektywnego c w odpowiedzi na każde zdarzenie awaryjne? (SIGINT
, SIGBUS
, SIGSEGV
, itd., ignorując „nieodłączalne” (SIGSTOP
, SIGKILL
, piorun itp.))
Dobrze byłoby wiedzieć, co robią twoje haki.
Na przykład: powiedzmy, że aby aplikacja działała, musi bezwzględnie zmienić wartość jakiejś zmiennej zmiennej systemowej X. Podczas uruchamiania aplikacja pobiera migawkę bieżącego stanu X, a następnie modyfikuje ją. Po pomyślnym zamknięciu aplikacji przywraca X do ukrytej, oryginalnej wartości przed zakończeniem. Moje pytanie brzmi: czy możliwe jest przywrócenie X, nawet jeśli aplikacja ulegnie awarii?