Mouse <mo...@rodents-montreal.org> wrote:
> > On NetBSD and macOS, lseek(2) on a tty succeeds:
> 
> >         if (lseek(STDIN_FILENO, 0, SEEK_CUR) == -1 )
> 
> > On Linux, this fails.
> 
> > I'm trying to think of why seeking on a terminal would make sense.
> > Anybody have an idea?
> 
> Quoting from lseek(2) on a handy machine:
> 
>       Some devices are incapable of seeking.  The value of the
>       pointer associated with such a device is undefined.
> 
> So I'm guessing it depends on whether you think of adding something to
> an undefined value makes sense.  To me, it does; the resulting value is
> undefined, but the seek pointer is undefined anyway.

Kinda feel this makes a successful return value of
lseek(2) quite unreliable: it could either mean that
lseek(2) was successful, and has updated the offset,
or it could mean ":shrug: can't seek, you are
wherever you were before calling me".

Wouldn't it be more helpful to the user to have
lseek(2) return -1 here?  Since it's undefined, doing
so is equally as valid (as far as the standard is
concerned).

-Jan

Reply via email to