Agree about hidden assumption, and may be alignment issues. Last try: https://play.golang.org/p/6e-i0AFZri
Jamil Djadala On Thursday, August 24, 2017 at 1:40:52 AM UTC+3, Rob 'Commander' Pike wrote: > > Apologies, typo. This is it: https://play.golang.org/p/9XWoCiUH2D > > On Thu, Aug 24, 2017 at 8:39 AM, Rob Pike <r...@golang.org <javascript:>> > wrote: > > I believe there is no safe (that is, unsafe-free) way to discover the > > native byte order. In a sense, this is because depending on the native > > byte order is intrinsically unsafe. It is by definition not portable. > > It is a terrible design decision. > > > > By the way, that program may work but it's not sound. It has a hidden > > assumption about how bytes are laid out in arrays and the > > correspondence with words. (Some machines, like the PDP-11, actually > > confused some matters like this). This is a better way to discover the > > byte order, at which point you can use portable methods from > > encoding/binary: https://play.golang.org/p/7svQ66wl7I > > > > -rob > > > > On Thu, Aug 24, 2017 at 8:24 AM, <dja...@gmail.com <javascript:>> > wrote: > >> It use unsafe, but works even in playground: > >> https://play.golang.org/p/S1rw157M9C > >> > >> > >> On Wednesday, August 23, 2017 at 3:49:39 PM UTC+3, Christian von > Kietzell > >> wrote: > >>> > >>> Hi, > >>> > >>> I've stumbled across a problem I don't know how to solve. > >>> > >>> I'm trying to read (from stdin) four bytes into a uint32 value. Those > >>> bytes are provided in _native_ byte order by an external program.[*1] > >>> > >>> Since I've found nothing in the standard library to determine the > >>> machine's native byte order I can't decide whether to use > >>> binary.BigEndian.Uint32 or binary.LittleEndian.Uint32. > >>> > >>> Is there a way without involving package unsafe? Am I missing > something > >>> obvious? > >>> > >>> [*1] The data comes from a web browser extension using the native > >>> messaging API, which specifies that messages sent to external programs > >>> are prefixed with the 32-bit length of the message in native byte > order. > >>> > >>> > >>> Thanks, > >>> Chris > >>> > >>> -- > >>> Nothing to see here. Move along. > >> > >> -- > >> You received this message because you are subscribed to the Google > Groups > >> "golang-nuts" group. > >> To unsubscribe from this group and stop receiving emails from it, send > an > >> email to golang-nuts...@googlegroups.com <javascript:>. > >> For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.