All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Graegert <graegerts@gmail.com>
To: Amit Dang <amit_dang@intersolutions.stpn.soft.net>
Cc: linux-c-programming@vger.kernel.org
Subject: Re: Any pointer to Byte Alignment & Structure Padding?
Date: Tue, 2 Aug 2005 13:32:55 +0200	[thread overview]
Message-ID: <6a00c8d5050802043274528ec6@mail.gmail.com> (raw)
In-Reply-To: <02c401c59745$2aaa0410$9900a8c0@ispl091>

On 8/2/05, Amit Dang <amit_dang@intersolutions.stpn.soft.net> wrote:
> Hi Glynn,
>    You are very right in saying that "there is no need for structures to
> have same layout on different platform" until structures are being written
> directly to the file system. But many time there is a requirement that the
> data file can be moved across platforms.

Reading and writing binary files in a portable way is not possible as
is.  Unless it is absolutely necessary to read/write binary data you
should always prefer a portable solution like XML and its derivatives.

An easy way to improve portability of binary files is to prepend a
header that contains enough information to discover byte ordering,
floating-point format, etc.  That makes it easy enough to write simple
tools that are able to read/write binary data.

All other techniques used for binary data are quite complex and rely
on other (quasi-)standards like XDR (invented by Sun and used for NFS
and RPC), CCITT X.409 or ASN.1.  They can be seen as a meta-languages
that specify the data representation for particular file formats.
 
> ----- Original Message -----
> From: "Glynn Clements" <glynn@gclements.plus.com>
> To: "Amit Dang" <amit_dang@intersolutions.stpn.soft.net>
> Cc: <linux-c-programming@vger.kernel.org>
> Sent: Tuesday, August 02, 2005 4:24 PM
> Subject: Re: Any pointer to Byte Alignment & Structure Padding?
> 
> 
> >
> > Amit Dang wrote:
> >
> > > Thanks Steve. So what is the best way of laying down a structure
> definition
> > > to over come cross platform issues?
> > > I read about introducing some explicit padding in the structure to take
> care
> > > for cross platform issues but for that I suppose one should have
> information
> > > about byte alignment & structure padding on all targeted platforms. Is
> that
> > > true or there is some generic way of doing that? (Apart from using
> compiler
> > > option to remove any padding )
> >
> > Structure layout has nothing to do with portability. There's no reason
> > why a structure needs to have the same layout on different platforms.
> > In most situations, you don't need to know anything about how the
> > structure is laid out; you just reference the fields.
> >
> > --
> > Glynn Clements <glynn@gclements.plus.com>
> > -
> > To unsubscribe from this list: send the line "unsubscribe
> linux-c-programming" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


-- 
                                 ______________________________________
Steve Graegert                  //
Software Consultancy           //    Whether you know it or not, if you
Mobile: +49 (176)  21248869   // are a hacker, you are a revolutionary.   
Office: +49 (9131) 7126409   //  Don't worry, you're on the right side.
____________________________//         -- Dr Crash / Phrack 6 / phile 3

      parent reply	other threads:[~2005-08-02 11:32 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-01 11:43 Any pointer to Byte Alignment & Structure Padding? Amit Dang
     [not found] ` <6eee1c40508010514517b5b90@mail.gmail.com>
2005-08-01 12:16   ` Vadiraj
     [not found]     ` <17134.43470.280296.644313@cerise.gclements.plus.com>
2005-08-02 11:21       ` Vadiraj
2005-08-02 11:40         ` Amit Dang
2005-08-02 16:39           ` Glynn Clements
2005-08-02 17:12             ` Vadiraj
2005-08-03  4:04               ` Amit Dang
     [not found]     ` <673ac06405080402432d0feda3@mail.gmail.com>
2005-08-04 15:23       ` Vadiraj
2005-08-04 16:28         ` Steve Graegert
2005-08-05 16:51           ` Vadiraj
2005-08-05  4:14         ` Amit Dang
2005-08-05  6:32           ` Steve Graegert
2005-08-05  6:49             ` Amit Dang
2005-08-05  7:09               ` Steve Graegert
2005-08-05 11:19                 ` Glynn Clements
2005-08-05 10:15                   ` Steve Graegert
2005-08-05 10:53                     ` Amit Dang
2005-08-05 11:13                       ` Steve Graegert
2005-08-05 11:28                         ` Amit Dang
2005-08-05 11:37                           ` Steve Graegert
2005-08-05 12:59                     ` Glynn Clements
2005-08-05 11:31                       ` Steve Graegert
2005-08-01 12:27   ` Amit Dang
2005-08-01 14:11     ` wwp
     [not found]       ` <003b01c59715$d3ffef00$9900a8c0@ispl091>
     [not found]         ` <6a00c8d5050801234267dd0f7f@mail.gmail.com>
     [not found]           ` <01dd01c5972f$5c3b62a0$9900a8c0@ispl091>
     [not found]             ` <17135.20687.821822.269575@cerise.gclements.plus.com>
     [not found]               ` <02c401c59745$2aaa0410$9900a8c0@ispl091>
2005-08-02 11:08                 ` Progga
2005-08-02 11:34                   ` Amit Dang
2005-08-02 11:32                 ` Steve Graegert [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6a00c8d5050802043274528ec6@mail.gmail.com \
    --to=graegerts@gmail.com \
    --cc=amit_dang@intersolutions.stpn.soft.net \
    --cc=linux-c-programming@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.