Odpovídáte na názor ke článku SEH v Linuxu (C++).
Doplnění: K čemu se hodí odchytávat SIGSEGV. Sdílené spojové seznamy
Mějme ukazatel top na prvek spojového seznamu. a každý prvek má ukazatel next.
Přidání do seznamu
1. novy prvek v newitm
2. newitm->next = top
3. pokud top == newitm->next, pak top = newitm, jinak goto 2 (atomicky)
Odebrání ze seznamu.
1. vyzvedni top do cur_top
2. vyzvedni cur_top->next do cur_next
3. pokud je cur_top == top, pak top = cur_next, jinak goto 1 (atomicky)
4. v cur_top mám odebraný prvek.
5. pokud je v cur_top->next jiná hodnota než v cur_next, prvky navíc vrať zpět do seznamu (viz přidání).
Oba algoritmy řeší nezamykatelné spojové seznamy, které zvládnou atomické odebrání či přidání prvku.
Problém je v při odebrání v bodě 2. V tomto bodě totiž za určitých okolností může dojít k SIGSEGV. Schválně kdo uhodne kdy. Pak pochopíte, proč je potřeba někdy SIGSEGV odchytávat.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 57 607×
Přečteno 27 722×
Přečteno 26 403×
Přečteno 24 367×
Přečteno 22 864×