blob: c7a5b73066f6de8d6ed46be823b0647f7b00af37 (
plain) (
tree)
|
|
#include "stdio_impl.h"
static off_t retneg1(FILE *f, off_t off, int whence)
{
return -1;
}
off_t __stdio_seek(FILE *f, off_t off, int whence)
{
off_t ret;
#ifdef __NR__llseek
if (syscall5(__NR__llseek, f->fd, off>>32, off, (long)&ret, whence)<0)
ret = -1;
#else
ret = syscall3(__NR_lseek, f->fd, off, whence);
#endif
/* Detect unseekable files and optimize future failures out */
if (ret < 0 && off == 0 && whence == SEEK_CUR)
f->seek = retneg1;
return ret;
}
|