🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #15272

Re: probleem met structuur

#15272
From: Robert Amesz
Date: Mon, 23 Oct 2000 02:12
47 lines
3098 bytes
Onno Hovers schreef:

>Robert Amesz <rcameszREMOVETHIS@dds.removethistoo.nl> wrote:
>> Frans Bouma schreef:
>
>>>    Dit kan een probleem zijn als je blokken data moet inlezen en
>>>    die blokken stellen structs voor (erg fijn ;)). code dat in
>>>    VC++ is geschreven werkt dan niet met gcc, omdat gcc standaard
>>>    een byte als 4 bytes in een structure opneemt (terecht, dat is
>>>    veel sneller) echter als je data gepacked is zonder
>>>    paddingbytes dan werkt het niet echt ;)
>
>> Om nog maar te zwijgen van het feit dat de datafiles die je op die
>> manier maakt ook niet overdraagbaar zijn naar big-endian
>> processoren, althans niet zonder de hele lees- en schrijfroutines
>> te herschrijven. 
>
>Hoe had je het dan gehad willen hebben?  Een taal die op
>little-endian processoren met big-endian getallen moet werken of
>andersom?

Huh? Natuurlijk niet.


> En hoe moeilijk is het nou om ntohl(), htonl(), ntohs() en
>htons() te gebruiken?
>

Moeilijk? Nee! Maar sommigen vinden het toch te bewerkelijk of weten 
niet beter, en gaan dan dingen doen als:

  fwrite(& mystructinstance, sizeof(struct mystruct), 1, somefile);

Dan krijg je bestanden waarin de lengte en bytevolgorde afhangen van 
zowel de compiler als de processor. We waren het er geloof ik allemaal 
wel over eens dat dat een Heel Slecht Idee is. <g>

Overigens zit je nog steeds met een probleempje als je je floats, 
doubles of long longs (64 bits) portable wilt opslaan, daar moet je
dan zelf iets leuks op verzinnen. Voor die long long is dat niet echt
een probleem, maar voor floating point getallen is dat lastiger omdat
daar een groot aantal binaire formaten voor bestaat. Als je geen 
nauwkeurigheid wilt verliezen is het opslaan als ascii vaak de enige
goede oplossing. 


Robert Amesz
Technical Details
Message-ID: <8FD62B556rcamesz@127.0.0.1>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-xit-03!supernews.com!news.tele.dk!194.109.6.150!transit.news.xs4all.nl!bullseye.news.demon.net!demon!news.demon.nl!demon!amesz.demon.nl!not-for-mail
References: <UljG5.29720$s31.471928@afrodite.telenet-ops.be> <3MlG5.19859$Z7.336199@nlnews00.chello.com> <A9mG5.31247$s31.493710@afrodite.telenet-ops.be> <MPG.14552ffc56413268989718@news.xs4all.nl> <8sf9i2$q68$1@news1.xs4all.nl> <8FD016AC0rcamesz@127.0.0.1> <8sstgb$smq$2@s.surfer.xs4all.nl>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: 107324,f57e95232f06f286
X-Google-Attributes: gid107324,public
X-Google-Thread: fcea4,f57e95232f06f286
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2000-10-22 19:13:06 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!sn-xit-03!supernews.com!news.tele.dk!194.109.6.150!transit.news.xs4all.nl!bullseye.news.demon.net!demon!news.demon.nl!demon!amesz.demon.nl!not-for-mail
From: rcameszREMOVETHIS@dds.removethistoo.nl (Robert Amesz)
Newsgroups: be.comp.programming,nl.comp.programmeren
Subject: Re: probleem met structuur
Date: Mon, 23 Oct 2000 02:12:07 GMT
Message-ID: <8FD62B556rcamesz@127.0.0.1>
References: <UljG5.29720$s31.471928@afrodite.telenet-ops.be> <3MlG5.19859$Z7.336199@nlnews00.chello.com> <A9mG5.31247$s31.493710@afrodite.telenet-ops.be> <MPG.14552ffc56413268989718@news.xs4all.nl> <8sf9i2$q68$1@news1.xs4all.nl> <8FD016AC0rcamesz@127.0.0.1> <8sstgb$smq$2@s.surfer.xs4all.nl>
Reply-To: rcamesz@dds.nl
NNTP-Posting-Host: amesz.demon.nl
X-NNTP-Posting-Host: amesz.demon.nl:212.238.72.220
X-Trace: news.demon.nl 972267127 pluto:29346 NO-IDENT amesz.demon.nl:212.238.72.220
X-Complaints-To: abuse@nl.demon.net
X-Posting-Agent: Hamster/1.3.13.0
User-Agent: Xnews/03.07.28
Lines: 47