Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: atexit()

Aktivity
Avatar
rikenbekr
Člen
Avatar
rikenbekr:4.4.2015 18:22

Když potřebuji na konci programu provést nějakou funkci bez ohledu na to kde a jak skončí musím atexit dát do všech funkcí nebo stačí do main()?

Odpovědět
4.4.2015 18:22
In world without fences and walls, who needs Gates and Windows?
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na rikenbekr
Martin Dráb:4.4.2015 19:26

Volání atexit informuje běhové prostředí, že funkce specifikovaná v parametru volání má být zavolána při ukončování programu.

Přičemž je možné takových funkcí registrovat víc. Zavolají se všechny (v pořadí opačném od pořadí registrace).

Tudíž pokud chceš, aby se ti při ukončování volala jen jedna funkce, stačí atexit zavolat jednou.

Samozřejmě, pokud ti někdo tvůj program ukončí násilně, žádná z registrovaných funkcí se nezavolá.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
4.4.2015 19:26
2 + 2 = 5 for extremely large values of 2
Avatar
rikenbekr
Člen
Avatar
rikenbekr:4.4.2015 20:54

A počítá se jako násilné např Alt+F4?

Nahoru Odpovědět
4.4.2015 20:54
In world without fences and walls, who needs Gates and Windows?
Avatar
embi
Člen
Avatar
embi:4.4.2015 21:03

Nemělo by, násilné je to třeba když to zabiješ proces.

 
Nahoru Odpovědět
4.4.2015 21:03
Avatar
rikenbekr
Člen
Avatar
rikenbekr:4.4.2015 22:18

a provedou se ty funkce i když bude program ukončen returnem ? a ne exitem?

Nahoru Odpovědět
4.4.2015 22:18
In world without fences and walls, who needs Gates and Windows?
Avatar
Martin Dráb
Tvůrce
Avatar
Martin Dráb:4.4.2015 22:51

A počítá se jako násilné např Alt+F4?

Nemyslím.

a provedou se ty funkce i když bude
program ukončen returnem ? a ne exitem?

Ano. Po návratu z mainu se nakonec bude exit() volat stejně, to zajistí běhové prostředí.

Nahoru Odpovědět
4.4.2015 22:51
2 + 2 = 5 for extremely large values of 2
Avatar
rikenbekr
Člen
Avatar
rikenbekr:4.4.2015 23:52

Díky :-)

Nahoru Odpovědět
4.4.2015 23:52
In world without fences and walls, who needs Gates and Windows?
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.