Mail Archives: djgpp/1995/05/05/17:28:36
i'm having an interesting problem. i have the following struct that i am
reading in from a file:
char attrib;
unsigned short int numkeys;
unsigned long left;
unsigned long right;
char continue;
char *keys;
the file physically reads as follows:
hex: "01 F0 00 00 00 00 00 00 00 00 00 00 00 06 00 00 30 32 . . ."
somehow a byte is getting lost, and it doesn't make much sense. i could
understand possibly some of the values being screwy because of the uneven
offset of the int, but the entire structure being offset and a byte lost?
here is the [sorta] output from gdb on "display ...":
attrib = '\001', numkeys = 0, left = 0, right = 0,
continue = '\000', keys = "\006\000\00002 . . ."
the first four bytes in keys should read: "\000\006\000\000"
numkeys should really be 15 (F0 00)
i did a "display (char *) &keynode" and it said "\001\017" which is correct,
so the info is still there, but the structure is seeing it wrong.
am i doing something wrong? actually, the fileread is to a buffer and then a
memcopy copies to the structure. will either of these situations cause a
problem here? i'd hate to reallign the structure [would screw up alot of
source code that works under borland]. if i need to redo the structure, is
there a way i can do it w/out screwing up compatibility w/ the borland version?
[ie maybe a bogus char in the structure ifdef'd to GNUC]
thanx for any info. [btw, im using 1.12m3]
confusedly,
bob
--
Robert Hollinger <------------------------------------->
4B Chaucer Ln. > \ www- http://www.xnet.com/~bob / < Disclaimer:
Streamwood, IL 60107 > \/\/ bob AT xnet DOT com \/\/ <
708-483-9391 <------------------------------------->I don't know her!
Paul: Hey Norm, how's the world been treating you?
Norm: Like a baby treats a diaper.
- Raw text -