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


Groups > comp.lang.c > #26581

Re: packed structs

From JohnF <john@please.see.sig.for.email.com>
Newsgroups comp.lang.c
Subject Re: packed structs
Date 2012-09-22 08:53 +0000
Organization PANIX Public Access Internet and UNIX, NYC
Message-ID <k3jua2$l2e$1@reader1.panix.com> (permalink)
References <k3j5or$q37$1@reader1.panix.com> <k3jaun$8al$1@dont-email.me> <e5a6fdcf-0343-4ea9-bfa8-5464c8d355a4@ib4g2000vbb.googlegroups.com>

Show all headers | View raw


Nick Keighley <nick_keighley_nospam@hotmail.com> wrote:
> Eric Sosman <esos...@ieee-dot-org.invalid> wrote:
> 
> serializing structs
> 
>> One way is the function-per-struct-type approach, and
>> although it may be "b..o..r..i..n..g" it has advantages
>> that should not be dismissed lightly. ?Consider that there
>> are (most likely) only a handful of structs and hence only
>> a handful of functions; writing them won't take enough
>> time to b..o..r..e anyone except an ADHD sufferer.
> 
> I've dealt with cases where there were considerably more than a
> "handful"- communication protocol.
> 
> Since I have a low b..o..r..e..d..o..m threshold I resorted to code
> generation. The protocol was defined by tables in a PDF document (ug).
> Copy-paste turned them into text and perl turned them into something
> easily processed. Most of the code was generated by people who didn't
> appear to mind writing tons of tedious boring repetitive code. There
> was a bit-banging library that did most of the heavy lifting.

What do you think of my my smemf()-type of solution in other post?
Not necessarily that particular solution, but the point being that
this has got to be a pretty frequently occurring problem, and the
only available solutions, like yours above, seem to be pretty
awfully ugly. But it ain't rocket science -- there ought to be
a way to deal with these situations elegantly. smemf() solves it
with >>zero<< structs. Instead of a struct, you define the block
or packet format with a sprintf-like format string, and then just
   smemf(buffer_for_block, format_string_describing_block_layout,
   data_for_field_1, data_for_field_2, ...);
And I suppose there are other kinds of ways to deal with this
whole class of problems, which wouldn't exist at all if some
kind of packed structs were C standard. In any case, there
should exist some standard practice for dealing with it.
-- 
John Forkosh  ( mailto:  j@f.com  where j=john and f=forkosh )

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


Thread

packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-22 01:54 +0000
  Re: packed structs Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-21 23:22 -0400
    Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-22 06:37 +0000
      Re: packed structs "BartC" <bc@freeuk.com> - 2012-09-22 13:47 +0100
        Re: packed structs Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-09-22 14:00 +0100
        Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-22 15:42 +0000
      Re: packed structs Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-22 09:13 -0400
      Re: packed structs Johann Klammer <klammerj@NOSPAM.a1.net> - 2012-09-23 03:10 +0200
        Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-23 02:10 +0000
      Re: packed structs Stephen Sprunk <stephen@sprunk.org> - 2012-09-23 11:44 -0500
        Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-23 23:23 +0000
          Re: packed structs Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-09-24 01:59 +0100
            Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-24 02:54 +0000
              Re: packed structs Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-09-24 04:38 +0100
                Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-24 04:07 +0000
                Re: packed structs Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-09-24 12:16 +0100
                Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-24 11:45 +0000
              Re: packed structs "BartC" <bc@freeuk.com> - 2012-09-24 10:18 +0100
                Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-24 11:04 +0000
                Re: packed structs Stephen Sprunk <stephen@sprunk.org> - 2012-09-30 14:21 -0500
                Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-10-01 07:34 +0000
          Re: packed structs Stephen Sprunk <stephen@sprunk.org> - 2012-09-30 13:52 -0500
    Re: packed structs Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-09-22 01:31 -0700
      Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-22 08:53 +0000
        Re: packed structs Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-09-22 14:17 +0000
          Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-22 15:33 +0000
            Re: packed structs Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-09-22 20:43 +0000
            Re: packed structs "BartC" <bc@freeuk.com> - 2012-09-22 22:52 +0100
          Re: packed structs Keith Thompson <kst-u@mib.org> - 2012-09-22 13:47 -0700
            Re: packed structs JohnF <john@forkosh.com.com> - 2012-09-23 00:19 +0000
              Re: packed structs Ian Collins <ian-news@hotmail.com> - 2012-09-23 13:32 +1200
                Re: packed structs JohnF <john@please.see.sig.for.email.com> - 2012-09-23 02:16 +0000
        Re: packed structs Ian Collins <ian-news@hotmail.com> - 2012-09-23 10:33 +1200
          Re: packed structs Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-09-23 01:38 -0700
  Re: packed structs The Great Firewall of China Blue <chine.bleu@yahoo.com> - 2012-09-21 21:29 -0700

csiph-web