Wewnątrz mojego atexit() zarejestrowany funkcja chciałbym uzyskać status wyjścia (albo argument wyjścia (3) lub co main() wrócił z).Uzyskanie statusu wyjścia z wnętrza funkcji zarejestrowanej atexit()
Czy istnieje jakiś przenośny sposób robienia tego? Czy istnieje jakiś specyficzny sposób działania GNU libc, taki jak globalny holding, którego wartość mogę odnieść?
Dzięki. Tak ustawianie własnego globalnego przed wywołaniem exit() i używanie go w moim zarejestrowanym funku wydaje się najlepszym pomysłem. –
Zapamiętaj nawiasy wokół 'exit' w makrze - upewnij się, że makro nie będzie próbowało wywoływać siebie, ale pozwól makro wywołać funkcję o tej samej nazwie. Niedawno nauczyłem się tej sztuczki, ale pozwala ci to uniknąć wyraźnego zaznaczenia twojego hacka z czymś takim jak '#define EXIT (x) exit (last_exit = x)'. Wszystkie czapki są po prostu brzydkie. –
Zalecany jest dodatkowy zestaw nawiasów wokół '(x)' w definicji makra. – caf