From: Doug Gwyn (VLD/VMB) <gwyn at brl-vld> read(fd, &y, sizeof y) is not portable for reasons that have nothing to do with alignment and padding. (ANY use of binary external data is inherently machine-dependent.) The problem with the read statement is that &y is not a (char *).