Hallo pl,
PS: Was mich nervt ist, daß C den Little Endian bevorzugt.
Tut es nicht. Dein Intel-Prozessor tut das. Nimm einen IBM Großrechner oder einen Motorola 68xxx Prozessor, die sind Big Endian.
Stimmt natürlich. Aber am Perlcode siehst Du, wie einfach sich Perl damit tut,
n
ist der Short in Networkorder. Damit und mit den anderen Schablonen wirst Du von der Architektur unabhängig: Perlcode läuft plattformübergreifend.
Das kann C auch: Im Header arpa/inet.h
findest du ntohs
& Co, die für dich „das Denken übernehmen“: ntohs
bspw. steht für network to host short, das heißt, dass der short
-Wert (eigentlich uint16_t
) anschließend definitv in der richtigen Host-Endianess vorliegt – auf IBM-PC kompatiblen Prozessoren findet daher ein Byte-Swapping statt, bei PowerPC zum Beispiel nicht.
Viele Grüße
Robert