Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Umwandlung Little Endian - Big Endian?

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.03.2006
    Beiträge
    54

    Umwandlung Little Endian - Big Endian?

    Ich habe hier ein etwas schwieriges Problem:
    Ich entwickle gerade eine Datenbank.
    Beim schreiben der Funktion fürs Speichern habe ich ein Problem.
    Alle Integerzahlen sollen im Big Endian Format geschrieben werden.
    Die Umwandlung erfolgt mit net.c/htonud().

    Das ganze wird über file.c/dump_hive() gestartet, die wiederum die Funktion file.c/dump_uint aufruft.
    Dort wird dann die Little Endian zahl VERSION (1) nach Big Endian umgewandelt und anschließend gespeichert
    im Verzeichnis "Test".

    Wenn ich allerdings die Dateien im Hexeditor öffne, dann steht dort nur der Headertext gefolgt von Nullen drin.
    Wo ist die 1 in der Big Endian Schreibweise abgeblieben?

    Was ist hier nicht richtig?
    Ich hoffe jemand kann mir einen Tipp geben.

    Ich habe ein Archiv angehängt mit den Sourcen.
    "... der Großteil hier hat einfach keine Lust, jede Pore einer Brotscheibe mit Butter auszuschmieren." - Susu

  2. #2
    Registrierter Benutzer
    Registriert seit
    20.03.2006
    Beiträge
    54
    Ich verwende jetzt htobe64() statt meiner eigenen Funktion.
    Weiß jemand wo es für htobe64() die Sourcen gibt, da ich das auch für Windows verwenden möchte.
    "... der Großteil hier hat einfach keine Lust, jede Pore einer Brotscheibe mit Butter auszuschmieren." - Susu

  3. #3
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    Glibc:
    http://sourceware.org/git/?p=glibc.g...its/byteswap.h

    edit: Achtung: wenn du den Code so direkt in dein Projekt übernimmst gilt afaik die GPL!
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

  4. #4
    Registrierter Benutzer
    Registriert seit
    12.10.2005
    Beiträge
    18
    Hallo!

    Achtung: wenn du den Code so direkt in dein Projekt übernimmst gilt afaik die GPL!
    Ich nehme an, dass das so nicht ganz richtig ist. In dem Header-File steht, dass es der LGPL unterliegt. Dazu sagt die Wikipedia http://de.wikipedia.org/wiki/GNU_Les...Public_License:
    Veränderte Versionen müssen dabei ebenfalls unter der LGPL (oder wahlweise der GPL) lizenziert werden. Grundsätzlich darf eine unter LGPL lizenzierte Software nur zusammen mit ihrem Quelltext vertrieben werden.

    Im Gegensatz zur GPL dürfen alle Programme, welche die LGPL-lizenzierte Software nur extern benutzen, zum Beispiel als Programmbibliothek, ihre eigene Lizenz behalten. Damit eignet sich die LGPL besonders als Lizenz für Bibliotheken, deren Benutzung man auch Programmierern proprietärer Programme erlauben will.
    Das heißt, die LGPL beeinflusst nicht (im Gegensatz zur GPL) die Lizenz des Anwendungsprogramms.
    Natürlich sollte man das noch im englischen Original nachlesen; es müsste aber soweit passen ...

    Werner

  5. #5
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    ... welche die LGPL-lizenzierte Software nur extern benutzen ...
    extern heisst, dass beliebig lizenzierte Programme gegen die glibc linken dürfen, nicht dass beliebig lizenzierte Programme Stücke des Codes kopieren dürfen.

    edit: Das heisst, wenn du den glibc-Code in dein Projekt kopierst, müsstest du eigentlich dein Projekt unter der LGPL lizenzieren.
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

  6. #6
    Registrierter Benutzer
    Registriert seit
    12.10.2005
    Beiträge
    18
    extern heisst, dass beliebig lizenzierte Programme gegen die glibc linken dürfen, nicht dass beliebig lizenzierte Programme Stücke des Codes kopieren dürfen.

    edit: Das heisst, wenn du den glibc-Code in dein Projekt kopierst, müsstest du eigentlich dein Projekt unter der LGPL lizenzieren.
    Jeebee, da hast Du schon recht, aber Include-Files prinzipiell sind für das korrekte Einbinden von Libraries (schon wegen der diversen Funktionsprototypen) notwendig. Ich kann mir nicht vorstellen, dass das Einbinden des Includes-Files "byteswap.h" (als Teil der Nutzung der Library!) hier anders zu sehen ist. Aber ich bin natürlich kein Anwalt ...

    Kopieren des Codes ist natürlich eine ganz andere Sache!

    Werner

  7. #7
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    Das Einbinden nicht, aber wenn du das File byteswap.h (das ja auf Windows nicht vorhanden sein wird...) zusammen mit deinem Projekt weiterverbreitest (so habe ich jedenfalls Post #2 verstanden), dann hast du es prinzipiell kopiert und musst dich an die Lizenzbedingungen des Files halten.
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •