Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #54746

Re: formats and endians

From Lowell Gilbert <lgusenet@be-well.ilk.org>
Newsgroups comp.lang.c
Subject Re: formats and endians
Date 2014-12-16 14:55 -0500
Organization A noiseless patient Spider
Message-ID <44iohbfjys.fsf@be-well.ilk.org> (permalink)
References <f80336ac-84d2-43dd-bdd3-cb9f8ca95c60@googlegroups.com> <m6pfea$5on$1@dont-email.me> <e86ce2b2-32e4-4aad-97d8-4410bb59fae6@googlegroups.com> <448ui7h7um.fsf@be-well.ilk.org> <01cf0873-dd98-437c-8f54-5b33bba7d553@googlegroups.com>

Show all headers | View raw


Malcolm McLean <malcolm.mclean5@btinternet.com> writes:

> On Tuesday, December 16, 2014 4:34:20 PM UTC, Lowell Gilbert wrote:
>>
>> For document formats, try to avoid binary entirely. Stick with something
>> that someone can easily read in the future without having documentation
>> on the format. Endian-ness is only one of several reasons for this.
>> 
> Writing robust text format parsers is unfortunately difficult.
> Consider an rgba image.
>
> The binary read is just
>
> width = fget16(fp);
> height = fget16(fp);
> if(width <= 0 || height <= 0)
>   goto parse_error;
> /* hard to check for overflow, let's do this */
> if( (width*height)/width != height)
>   goto parse_error;
> if( (width *height*4)/4 != width*height)
>   goto parse_error;
> ptr = malloc(width*height *4);
> if(!ptr)
>    goto out_of_memory; 
> sz = fread(ptr, 4, width *height, fp);
> if(sz != width * height)
>   goto parse_error;
>
> That's with paranoid checks on whether width * height overflows.
>
> To do the same with text is more difficult. You've got to check
> that every single number is present and in valid format, then
> you've got to check that it's not out of range for the low-level
> read, then you've got to check that it's in range for the values.

To put it more abstractly, text-formatted data brings some scaling
problems. Their advantages are strongest for uses that are wide enough
to need to interoperate between multiple implementations but not wide
enough for someone to bother describing them with enough care to create
an unambiguous standard.

[I should note that on my current project I never considered anything
but a binary format.]


-- 
Lowell Gilbert, embedded/networking software engineer
	 http://be-well.ilk.org/~lowell/

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 04:49 -0800
  formats and endians John Bode <jfbode1029@gmail.com> - 2014-12-16 05:24 -0800
    Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 05:38 -0800
      Re: formats and endians Kleuske <kleuske@nowhere.net> - 2014-12-16 13:55 +0000
        Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 11:49 -0600
          Re: formats and endians BGB <cr88192@hotmail.com> - 2014-12-16 21:37 -0600
            Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-17 01:08 -0800
              Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-17 02:42 -0800
            Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-18 14:38 -0600
              Re: formats and endians Rosario193 <Rosario@invalid.invalid> - 2014-12-18 23:09 +0100
              Re: formats and endians BGB <cr88192@hotmail.com> - 2014-12-18 16:52 -0600
          Re: formats and endians Kleuske <kleuske@nowhere.net> - 2014-12-17 11:11 +0000
            Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-17 03:49 -0800
            Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-18 16:28 -0600
              Re: formats and endians BGB <cr88192@hotmail.com> - 2014-12-18 19:38 -0600
              Re: formats and endians Kleuske <kleuske@nowhere.net> - 2014-12-21 14:17 +0000
                Re: formats and endians Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-12-22 02:19 -0800
                Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2015-01-15 12:18 -0600
                Re: formats and endians Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-01-15 22:35 +0000
                Re: formats and endians raltbos@xs4all.nl (Richard Bos) - 2015-01-20 16:06 +0000
                Re: formats and endians Barry Schwarz <schwarzb@dqel.com> - 2015-01-22 15:41 -0800
                Re: formats and endians Robert Wessel <robertwessel2@yahoo.com> - 2015-01-23 00:45 -0600
                Re: formats and endians Richard Heathfield <invalid@see.sig.invalid> - 2015-01-23 08:52 +0000
                Re: formats and endians Robert Wessel <robertwessel2@yahoo.com> - 2015-01-23 05:47 -0600
                Re: formats and endians Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-01-23 03:51 -0800
                Re: formats and endians Bartc <bc@freeuk.com> - 2015-01-23 12:18 +0000
                Re: formats and endians raltbos@xs4all.nl (Richard Bos) - 2015-01-23 13:49 +0000
                Re: formats and endians fir <profesor.fir@gmail.com> - 2015-01-23 07:02 -0800
                Re: formats and endians fmassei@gmail.com - 2015-01-23 07:39 -0800
                Re: formats and endians Lowell Gilbert <lgusenet@be-well.ilk.org> - 2015-01-23 10:38 -0500
                Re: formats and endians Greg Martin <greg.at.softsprocket@dot.com> - 2015-01-23 17:45 +0000
                Re: formats and endians James Kuyper <jameskuyper@verizon.net> - 2015-01-23 12:59 -0500
                Re: formats and endians Greg Martin <greg.at.softsprocket@dot.com> - 2015-01-23 18:30 +0000
                Re: formats and endians James Kuyper <jameskuyper@verizon.net> - 2015-01-26 12:35 -0500
                Re: formats and endians Richard Heathfield <invalid@see.sig.invalid> - 2015-01-26 18:15 +0000
                Re: formats and endians Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-01-26 10:53 -0800
                Re: formats and endians Richard Heathfield <invalid@see.sig.invalid> - 2015-01-26 19:06 +0000
                Re: formats and endians Les Cargill <lcargill99@comcast.com> - 2015-01-26 17:54 -0600
                Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2015-01-26 19:09 -0600
                Re: formats and endians Richard Heathfield <invalid@see.sig.invalid> - 2015-01-27 01:49 +0000
                Re: formats and endians James Kuyper <jameskuyper@verizon.net> - 2015-01-26 21:37 -0500
                Re: formats and endians raltbos@xs4all.nl (Richard Bos) - 2015-01-23 22:33 +0000
                Re: formats and endians Richard Heathfield <invalid@see.sig.invalid> - 2015-01-23 18:02 +0000
                Re: formats and endians Greg Martin <greg.at.softsprocket@dot.com> - 2015-01-23 18:50 +0000
                Re: formats and endians glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-01-24 00:01 +0000
                Re: formats and endians raltbos@xs4all.nl (Richard Bos) - 2015-01-24 10:05 +0000
                Re: formats and endians glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-01-24 11:57 +0000
                Re: formats and endians Geoff <geoff@invalid.invalid> - 2015-01-24 07:48 -0800
                Re: formats and endians Bartc <bc@freeuk.com> - 2015-01-24 10:43 +0000
                Re: formats and endians Geoff <geoff@invalid.invalid> - 2015-01-24 07:52 -0800
                Re: formats and endians raltbos@xs4all.nl (Richard Bos) - 2015-01-23 13:51 +0000
      Re: formats and endians John Bode <jfbode1029@gmail.com> - 2014-12-16 06:56 -0800
    Re: formats and endians Robert Wessel <robertwessel2@yahoo.com> - 2014-12-16 13:20 -0600
      Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 18:00 -0600
        Re: formats and endians "Bill Cunningham" <nospam@nspam.invalid> - 2014-12-17 16:32 -0500
  Re: formats and endians David Brown <david.brown@hesbynett.no> - 2014-12-16 15:26 +0100
    Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 06:57 -0800
      Re: formats and endians Lowell Gilbert <lgusenet@be-well.ilk.org> - 2014-12-16 11:34 -0500
        Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 08:47 -0800
          Re: formats and endians BartC <bc@freeuk.com> - 2014-12-16 17:02 +0000
            Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 10:49 -0800
              Re: formats and endians BartC <bc@freeuk.com> - 2014-12-16 19:10 +0000
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 11:28 -0800
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 11:43 -0800
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 11:58 -0800
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 12:20 -0800
                Re: formats and endians BartC <bc@freeuk.com> - 2014-12-16 20:21 +0000
                Re: formats and endians Keith Thompson <kst-u@mib.org> - 2014-12-16 13:08 -0800
                Re: formats and endians Richard Heathfield <invalid@see.sig.invalid> - 2014-12-16 21:19 +0000
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 13:27 -0800
                Re: formats and endians Tim Rentsch <txr@alumni.caltech.edu> - 2014-12-16 16:41 -0800
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 13:22 -0800
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 14:00 -0800
                Re: formats and endians BartC <bc@freeuk.com> - 2014-12-16 22:26 +0000
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 14:54 -0800
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 15:09 -0800
                Re: formats and endians BartC <bc@freeuk.com> - 2014-12-16 20:08 +0000
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 12:48 -0800
            Re: formats and endians Kaz Kylheku <kaz@kylheku.com> - 2014-12-16 22:21 +0000
              Re: formats and endians BartC <bc@freeuk.com> - 2014-12-16 22:39 +0000
                Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 15:32 -0800
                Re: formats and endians glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-12-17 00:51 +0000
                Re: formats and endians BartC <bc@freeuk.com> - 2014-12-17 11:04 +0000
                Re: formats and endians glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-12-17 17:04 +0000
          Re: formats and endians Lowell Gilbert <lgusenet@be-well.ilk.org> - 2014-12-16 12:29 -0500
          Re: formats and endians Ken Brody <kenbrody@spamcop.net> - 2014-12-16 12:40 -0500
            Re: formats and endians Lowell Gilbert <lgusenet@be-well.ilk.org> - 2014-12-16 13:10 -0500
              Re: formats and endians Kaz Kylheku <kaz@kylheku.com> - 2014-12-16 18:35 +0000
                Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 12:57 -0600
                Re: formats and endians Lowell Gilbert <lgusenet@be-well.ilk.org> - 2014-12-16 15:11 -0500
                Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 18:10 -0600
            Re: formats and endians fir <profesor.fir@gmail.com> - 2014-12-16 10:51 -0800
            Re: formats and endians glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-12-16 19:43 +0000
        Re: formats and endians Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-12-16 10:37 -0800
          Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 13:05 -0600
            Re: formats and endians Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-12-16 11:49 -0800
              Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 17:16 -0600
          Re: formats and endians Lowell Gilbert <lgusenet@be-well.ilk.org> - 2014-12-16 14:55 -0500
            Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 17:48 -0600
              Re: formats and endians BGB <cr88192@hotmail.com> - 2014-12-17 00:18 -0600
                Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-20 12:21 -0600
                Re: formats and endians BGB <cr88192@hotmail.com> - 2014-12-22 01:38 -0600
      Re: formats and endians Stephen Sprunk <stephen@sprunk.org> - 2014-12-16 11:45 -0600
    Re: formats and endians Michael Angelo Ravera <maravera@prodigy.net> - 2014-12-18 16:50 -0800
  Re: formats and endians Nobody <nobody@nowhere.invalid> - 2014-12-17 04:51 +0000
    Re: formats and endians Malcolm McLean <malcolm.mclean5@btinternet.com> - 2014-12-19 10:16 -0800

csiph-web