On Tue, 2007-02-20 at 02:31 -0500, Hank Leininger wrote: > Is there anything provided by the kernel that would let you see the > current offset of an existing filehandle? > > Sometimes when processing a very large file (grepping a log, bzip2'ing > or gpg'ing a file, or whatever), I'd really like to know how far along > it is, because I'm impatient. lsof has an -o flag to show offsets for > file descriptors it lists, but it appears that's not supported under > Linux. It looks like all of the information lsof and fuser print about > files in use, etc can be gotten from /proc/*/fd/* (and /proc/*/maps, but > I'm not really concerned with mmap'ed files, just positions on fds). > Sometimes I'll resort to strace -s4096'ing the process to see what chunk > of text it's currently reading, and try to guess from that. Silly. > > Has anybody ever developed a patch to implement this? I realize this > could create a variety of information-leakage problems; the information > probably would need to be restricted, such as by the same rules as > dumpable. Are there any horribly painful reasons why this couldn't be > done? It shouldn't be too painful. The code to populate /proc/*/fd/ has the file struct. It just doesn't have a place pass the offset to user-space since it's basically creating a symlink. In proc_fd_link(), it has the file struct. The offset is file->f_pos. One could create something like /proc/*/fd_offsets, whose read method could list the file descriptor, path, and offset for each open file. Shaggy -- David Kleikamp IBM Linux Technology Center - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html