this could cause problems if the application uses dup2(fd,fileno(f))
to redirect, and the old fd was not seekable but the new fd is.
#include "stdio_impl.h"
-static off_t retneg1(FILE *f, off_t off, int whence)
-{
- errno = ESPIPE;
- return -1;
-}
-
off_t __stdio_seek(FILE *f, off_t off, int whence)
{
off_t ret;
#else
ret = syscall(SYS_lseek, f->fd, off, whence);
#endif
- /* Detect unseekable files and optimize future failures out */
- if (ret < 0 && errno == ESPIPE) f->seek = retneg1;
return ret;
}