Sync with FreeBSD.
File positions are off_t nowdays, not long, so:
fseek -> fseeko
Make errmsg a const, so we can just set error messages instead
of using sprintf/strcpy.
proper parens mean that fd is always set by open(2) [in any part of C],
and so we can accurately check for it returning -1, without feeling like
we need to initialize fd to -1 in its declaration.
Remove some #ifdef sun.
Sprinkle const.