This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Thu, 2007-06-07 13:57:17 -0400, Tor Myklebust <tmyklebu@csclub.uwaterloo.ca> wrote: > On Thu, 7 Jun 2007, Jan-Benedict Glaw wrote: > >There's a difference in > > > > void send_float (float foo, int fd) { > > write (fd, &foo, sizeof (float)); > > } > > > >and > > > > void send_float (float foo, int fd) { > > char buf[100]; > > snprintf (buf, sizeof (buf), "%f", foo); > > write (fd, buf, strlen (buf)); > > } > > > >The second variant surely burns more CPU cycles, even on both sides, > >but it'll easily work even for different architectures. (I just think > >about VAX where the CPU FP support is made up of four non-IEEE float > >types...) > > And the second variant can segfault if you replace 'float' by 'long > double' (changing the format string appropriately) and you feed it > something bad. Why is this a good thing? Where shall this invalid long double come from? The CPU won't generate it itself. And if you play tricks and printf() a known-bad long double from inside your application, that app doesn't deserve any better than crash. MfG, JBG -- Jan-Benedict Glaw jbglaw@lug-owl.de +49-172-7608481 Signature of: The course of history shows that as a government grows, liberty the second : decreases." (Thomas Jefferson)
Attachment:
signature.asc
Description: Digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |