if (lseek (fd, offset, SEEK_SET) == (off_t) -1)
if (__lseek (fd, offset, SEEK_SET) == (off_t) -1)
__pread (int fd, void *buf, size_t nbyte, off_t offset){  /* Since we must not change the file pointer preserve the value so that     we can restore it later.  */  int save_errno;  ssize_t result;  off_t old_offset = lseek (fd, 0, SEEK_CUR);  if (old_offset == (off_t) -1)    return -1;  /* Set to wanted position.  */  if (lseek (fd, offset, SEEK_SET) == (off_t) -1)    return -1;  /* Write out the data.  */  result = read (fd, buf, nbyte);  /* Now we have to restore the position.  If this fails we have to     return this as an error.  But if the writing also failed we     return this error.  */  save_errno = errno;  if (lseek (fd, old_offset, SEEK_SET) == (off_t) -1)    {      if (result == -1)	__set_errno (save_errno);      return -1;    }  __set_errno (save_errno);  return result;}