Just to note....
Solaris 2 implmements llseek() which takes a long long.
However (as noted in the sun man page), llseek() currently only works for
addresses >32b on devices. In fact, it doesn't even work on buffered disk
devices. It has to be a raw disk device.
Note that Linux has had llseek() with similar restrictions to Solaris
for a very long time --- since 1.2, I believe. This is how we've
supported > 2 GB disks. (You need llseek() on device files so that
fsck/e2fsck can actually read the raw disk. :-)
- Ted