Handel?



  • alex89ru schrieb:

    Kurz gesagt:
    Handels sind (meisten oder oft) einfach nur Zeiger
    ===> void*

    //zb:
    typedef void* HANDEL;
    

    Sprachlich betrachtet schon aber worauf zeigt es denn und wie willst du es dereferenzieren?



  • Das HANDLE kann zB auf eine Stuktur zeigen.
    Sagen wir mal du hast schon ein HANDLE auf was weiß ich.
    Du rufst jetzt eine Funktion (OS-Funktion?)auf die dieses HANDLE benötigt.
    Diese Funktion weiß dann worum (zB um welche Datenstruktur oder was weiß ich was) es sich handelt.
    Wie jeder(C/C++ Programmierer) weiß kann man über Zeiger auf Daten zugreifen.

    ...ich hoffe du hast das gemeint,wenn nicht dann schade
    und nochwas: Was meinst du mit dereferenzieren???
    Meinst du woher man weiß worauf es zeigt?
    Das weiß die Funktion...
    wenn du das falsch HANDLE übergibst..dann ...error oder was weiß ich.....



  • alex89ru schrieb:

    Kurz gesagt:
    Handels sind (meisten oder oft) einfach nur Zeiger

    Hm nöö nicht unbedingt, Zeiger sind Zeiger, Handles sind Handles =). Handles sind (meist?) einfach eine Zahl, sozusagen wie eine ID. Dateihandles z.B. sind immer Zahlen und das Betriebssystem weis dann selber, welche Zahl(also welches Handle) welcher Datei zugeordnet ist.



  • Pellaeon schrieb:

    alex89ru schrieb:

    Kurz gesagt:
    Handels sind (meisten oder oft) einfach nur Zeiger

    Hm nöö nicht unbedingt, Zeiger sind Zeiger, Handles sind Handles =). Handles sind (meist?) einfach eine Zahl, sozusagen wie eine ID. Dateihandles z.B. sind immer Zahlen und das Betriebssystem weis dann selber, welche Zahl(also welches Handle) welcher Datei zugeordnet ist.

    Palleon hat schon Recht...aber ich hab mich eigenlich auf das HANDLE unter Windows bezogen: Glaub die definition von HANDEL(UNTER WINDOWS) war void*;

    Natürlich gibts es auch Handels die eine Zahl sind: zB Dateidescriptoren die man von open() erhält.



  • Am besten ihr verzichtet darauf zu beschreiben was hinter einem Handle steckt.



  • Ich finde es ist schon wichtig zu wissen , was dahinter steckt.
    Es könnte ja kein Zeiger , keine Zahl(kein (Datei-)Deskriptor) dahinterstecken sondern eine einfache struktur.
    Man könnte dann diese Struktur (aus welchem Grund auch immer )"manipulieren".



  • alex89ru schrieb:

    Ich finde es ist schon wichtig zu wissen , was dahinter steckt.
    Es könnte ja kein Zeiger , keine Zahl(kein (Datei-)Deskriptor) dahinterstecken sondern eine einfache struktur.
    Man könnte dann diese Struktur (aus welchem Grund auch immer )"manipulieren".

    das ist nur interessant für "hacker" 😉



  • alex89ru schrieb:

    Ich finde es ist schon wichtig zu wissen , was dahinter steckt.
    Es könnte ja kein Zeiger , keine Zahl(kein (Datei-)Deskriptor) dahinterstecken sondern eine einfache struktur.
    Man könnte dann diese Struktur (aus welchem Grund auch immer )"manipulieren".

    Nix mit Struktur. Ein Handle an sich ist ein Griff auf irgendwas. Stelle es dir lieber als ID vor. Siehe Bsp. Datei.





  • Handle als Zeiger, naja, da wär ich vorsichtig ...



  • Ich habe geschrieben: Es könnte sein , dass es eine Struktur ist!!!
    Und unter win hab ich schon irgendwo(in einer headerdatei dessen Name ich jetzt gerade nicht mehr weiß) die definition von HANDLE gesehen:...diese war void*!!!!
    Unter Linux weiß ich es nicht , da ich mich noch nicht ausguiebig beschäftigt hab.

    ...und noch was zu HANDLE als struktur:
    Sagen wir mal jemand schreibt ein prog in dem ein Handle übergeben werden muss.
    Was spricht dagegen dieses HANDLE als eine Struktur mittels struct oder als Zeiger darauf zu definieren?



  • alex89ru schrieb:

    Ich habe geschrieben: Es könnte sein , dass es eine Struktur ist!!!
    Und unter win hab ich schon irgendwo(in einer headerdatei dessen Name ich jetzt gerade nicht mehr weiß) die definition von HANDLE gesehen:...diese war void*!!!!
    Unter Linux weiß ich es nicht , da ich mich noch nicht ausguiebig beschäftigt hab.

    ...und noch was zu HANDLE als struktur:
    Sagen wir mal jemand schreibt ein prog in dem ein Handle übergeben werden muss.
    Was spricht dagegen dieses HANDLE als eine Struktur mittels struct oder als Zeiger darauf zu definieren?

    Ich hab ja schon gesagt, dass ein Handle natürlich ein Zeiger sein kann. Das ist aber nur eine sprachliche Angelegenheit. In den meisten Fällen(unter Windows) zeigen Handles auf keine Speicherstelle und lassen sich damit auch nicht dereferenzieren sondern nur die Funktionen des Betriebssystems wissen damit etwas anzufangen. Für den Benutzer ist es nur das Idenfitikationskärtchen, das man an der Garderobe bekommt, um später seinen Mantel wiederzubekommen. Also bringt es gar nichts, jemandem, der wissen will, was ein Handle ist und wozu es gut ist zu sagen, dass es einfach nur ein Zeiger ist oder auch eine Struktur sein kann. 🙂


Anmelden zum Antworten