No reason for it to be negative, and gcc -Wextra complains when it's signed.
A read() analogue wouldn't be particularly useful here since we're just poking at bytes, but having a way to get the "real" offset in a file sure would be!