Odpověď na názor

Odpovídáte na názor ke článku Temná strana linuxu - spouštění procesů.

  • 23. 1. 2012 13:35

    Martin Dráb (neregistrovaný)

    @11:
    Chybou ERROR_INVALID_HAN­DLE 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?