<div dir="ltr">I don&#39;t know enough about the details. But I have read about struct alignment issues causing problems like you&#39;re having.<br><br><div class="gmail_quote">On Mon, Sep 5, 2011 at 3:10 PM, Natty <span dir="ltr">&lt;<a href="mailto:aloha2004@gmail.com">aloha2004@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div dir="ltr"><div>You mean if the struct has the attributed packed? such as:</div><div><br></div><div>struct</div><div>
{...} __attribute__((__packed__));</div><div><br></div><div>???</div><div><br></div><div>if so,I will need to take a look at the device that sends the data. I get the binary data over the network from an embedded device which runs gcc compiler, and I have no idea (yet) if it uses the __packed__ flag.</div>

<div><br></div><div>thanks,</div><div><div></div><div class="h5"><br><div class="gmail_quote">On Mon, Sep 5, 2011 at 2:45 PM, Scott Weisman <span dir="ltr">&lt;<a href="mailto:sweisman@pobox.com" target="_blank">sweisman@pobox.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div>You would have to provide more details, like the C compiler, flags, etc.</div><div><br></div>IIRC unless you specify otherwise, C aligns structure members on 4 or 8 byte boundaries. You can force it to pack structs, which you want in your case.<br>


<br><div class="gmail_quote"><div><div></div><div>On Sun, Sep 4, 2011 at 6:34 PM, Natty <span dir="ltr">&lt;<a href="mailto:aloha2004@gmail.com" target="_blank">aloha2004@gmail.com</a>&gt;</span> wrote:<br></div>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div></div><div>
<div dir="ltr">Hi,<div><br></div><div>I&#39;ve packed a C structure which looks similar to:</div><div><br></div><div>struct  {</div><div>  unsigned char _vMapping1[3]; //  on the system perl is running, it sums up to 3 bytes.</div>



<div>  unsigned char _vMapping2[3];   // on the system perl is running, it sums up to 3 bytes.</div><div>  short _uPnP;  //  on the system perl is running, it sums up to 2 bytes.</div><div>}</div><div><br></div><div>I think there are some fill bytes, which there shouldn&#39;t be I believe, since I am not getting what I&#39;m expecting when using:</div>



<div><br></div><div>my $bin = unpack(&#39;c[3]c[3]s&#39;,...);</div><div><br></div><div>is there a module which will make my life easier to pack / unpack C structures / binary data?</div><div><br></div><div>thanks,</div>


<div>
<br></div><div><br></div></div>
<br></div></div>_______________________________________________<br>
Perl mailing list<br>
<a href="mailto:Perl@perl.org.il" target="_blank">Perl@perl.org.il</a><br>
<a href="http://mail.perl.org.il/mailman/listinfo/perl" target="_blank">http://mail.perl.org.il/mailman/listinfo/perl</a><br></blockquote></div><br></div>
<br>_______________________________________________<br>
Perl mailing list<br>
<a href="mailto:Perl@perl.org.il" target="_blank">Perl@perl.org.il</a><br>
<a href="http://mail.perl.org.il/mailman/listinfo/perl" target="_blank">http://mail.perl.org.il/mailman/listinfo/perl</a><br></blockquote></div><br></div></div></div>
<br>_______________________________________________<br>
Perl mailing list<br>
<a href="mailto:Perl@perl.org.il">Perl@perl.org.il</a><br>
<a href="http://mail.perl.org.il/mailman/listinfo/perl" target="_blank">http://mail.perl.org.il/mailman/listinfo/perl</a><br></blockquote></div><br></div>