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?