easy way to determine if a stream or fd is seekable
Joerg Sonnenberger
joerg at britannica.bec.de
Wed Nov 16 23:22:09 UTC 2011
On Wed, Nov 16, 2011 at 01:14:28PM +0000, Alexander Best wrote:
> On Wed Nov 16 11, Joerg Sonnenberger wrote:
> > On Tue, Nov 15, 2011 at 08:24:50PM +0000, Alexander Best wrote:
> > > one of the things i'm missing is an easy way to determine, whether a stream or
> > > fd is seekable. i checked the dd(1) and hd(1) sources and those tools are
> > > performing so much stuff just to find out if this is the case, and they still
> > > are doing a very poor job.
> >
> > Isn't the primary issue that FreeBSD doesn't properly report errors for
> > lseek(2)? I think you should start from that and not hack around the
> > fallout...
>
> what do you mean? lseek(2) returns -1, when the file descriptor is not
> seekable. i fired lseek(2) at all sorts of file types (dir, sockets, ...)
> and it always returned the correct result.
If that were the case, you wouldn't need your flag to detect seek
support. But e.g. some devices silently ignore seek requests without
reporting errors. At least that is what I remember from the last time
this has brought up.
Joerg
More information about the freebsd-hackers
mailing list