Odpovídáte na názor ke článku Temná strana linuxu - spouštění procesů.
@11:
Chybou ERROR_INVALID_HANDLE bych se úplně neřídil. Spíš bych zkusil ověřit tu teorii o tom, že dědění != kopírování pomocí nástrojů jako je Process Explorer, který dovoluje pro proces zobrazit, která handle má otevřená. Windows v některých případech vrací podivné chybové kódy. A jak říkáte, mají také své různé bolístky.
Ono pokud se podíváme na implementaci těch handle... handle je ve skutečnosti index do tzv. tabulky handle, která zajišťuje překlad konkrétních hodnot handle na adresy příslušných objektů. Každý proces má vlastní tabulku handle. Z tohoto důvodu nevěřím, že by zrušení handle v dítěti znamenalo i zrušení handle v rodiči popř. v prarodiči a dále, pokud to dědění probíhalo delší dobu. Ve Windows může dojít k situaci, kdy proces A spustí proces B, který spustí proces C, přičemž proces B následně skončí; procesy A a C tedy dále existují, ale C nemá šanci se dozvědět, že jeho prarodičem je A. Jediné, co může zjistit, je PID jeho rodiče, které je ale už neplatné.
Ale to se zavíráním těch handle si vyzkouším. Můžete se mapsat, jak jste přesně postupoval, abychom každý nedělali něco jiného?
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 51 064×
Přečteno 23 939×
Přečteno 22 871×
Přečteno 20 953×
Přečteno 17 760×