cvs commit: src/include ar.h
Poul-Henning Kamp
phk at phk.freebsd.dk
Mon Nov 13 09:35:25 UTC 2006
In message <20061113173927.Q75708 at delplex.bde.org>, Bruce Evans writes:
>On Mon, 13 Nov 2006, Joseph Koshy wrote:
>
>> jkoshy 2006-11-13 04:28:29 UTC
>>
>> FreeBSD src repository
>>
>> Modified files:
>> include ar.h
>> Log:
>> Attempt to improve application portability by marking `struct ar_hdr'
>> as `packed'.
>>
>> The C standard leaves the alignment of individual members of a C
>> struct upto the implementation, so pedantically speaking portable
>> code cannot assume that the layout of a `struct ar_hdr' in memory
>> will match its layout in a file. Using a __packed attribute
>> declaration forces file and memory layouts for this structure to
>> match.
>>
>> Submitted by: ru
>
>I don't see how this can be more portable.
I agree with bruce that __packed is not the way to go.
For things that represent communication protocols, even if
they happen through files, I advocate using the functions
in sys/endian.h to explicitly decode and encode fields into
bytestrings.
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
More information about the cvs-src
mailing list