musl/src/stdio/__stdio_seek.c

22 lines
463 B
C
Raw Normal View History

2011-02-12 00:22:29 -05:00
#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 SYS__llseek
if (syscall(SYS__llseek, f->fd, off>>32, off, &ret, whence)<0)
ret = -1;
#else
ret = syscall(SYS_lseek, f->fd, off, whence);
#endif
2011-02-12 00:22:29 -05:00
/* Detect unseekable files and optimize future failures out */
if (ret < 0 && off == 0 && whence == SEEK_CUR)
f->seek = retneg1;
return ret;
}