Mail Archives: djgpp/1999/06/14/05:29:09
Sunil,
I don't think it is fwrite who is reponsible for this 'alignment'.
It is the sizof() operator, which returns a struct size longer than what you
expect. The size of a struct (unless non-standard options like '#pragma
packed' is used) is adjusted so that structs in an array will be properly
aligned. In practise the largest simple element in your struct sets the
alignment.
Hope this helps.
Regards,
Kurt Alstrup
-----Original Message-----
From: Sunil V [mailto:sunilv AT accord-soft DOT com]
Sent: Monday, June 14, 1999 11:19 AM
To: djgpp AT delorie DOT com
Subject: How does fwrite align ?
Hello everybody,
I have observed that when I use something like fwrite(&XXX,
sizeof(struct X), 1, file_pointer);
in a loop, the next record is not written immediately after the first
record. The next record is aligned to an int boundary ( that is what I
observed on my m/c, where in the size of int is 4 bytes). Is there a
hard and fast rule that dictates the way alignment has to be performed
or is it dependent on the compiler or the architecture of the machine ?
Please reply ASAP
Regards Sunil
--
- Raw text -