Message-ID: From: "Alstrup, Kurt" To: "'djgpp AT delorie DOT com'" Subject: RE: How does fwrite align ? Date: Mon, 14 Jun 1999 02:28:35 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2448.0) Content-Type: text/plain; charset="ISO-8859-1" Reply-To: djgpp AT delorie DOT com 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 --