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