Is there a way to attach to a process and find out, not only which files it is reading from, but what the read locations (byte offsets) of those reads are?
I tried using strace for this, but it doesn't seem to show that information.
you should be able to tap into /proc/$PID/fdinfo for this purpose. Check out the "The phantom progress bar" section at Solving problems with proc
fdinfo tracks a process's current position within an open file.