--- libaitio/src/aio.c 2010/07/05 11:01:56 1.1.2.2 +++ libaitio/src/aio.c 2011/04/19 21:07:32 1.2.8.1 @@ -1,3 +1,11 @@ +/************************************************************************* +* (C) 2010 AITNET ltd - Sofia/Bulgaria - +* by Michael Pounov +* +* $Author: misho $ +* $Id: aio.c,v 1.2.8.1 2011/04/19 21:07:32 misho Exp $ +* +*************************************************************************/ #include "global.h" @@ -15,6 +23,7 @@ io_rread(int fd, void * __restrict buf, size_t nbytes, { int ret; #ifdef AIO_OPS + off_t old = 0; struct aiocb acb; #endif @@ -34,8 +43,14 @@ io_rread(int fd, void * __restrict buf, size_t nbytes, #ifdef AIO_OPS /* This made for generate EOF for file */ - if (update && offset >= lseek(fd, 0, SEEK_END)) + if (!update && (old = lseek(fd, 0, SEEK_CUR)) == -1) { + LOGERR; + return -1; + } + if (offset >= lseek(fd, 0, SEEK_END)) return 0; + if (!update) + lseek(fd, old, SEEK_SET); memset(buf, 0, nbytes); memset(&acb, 0, sizeof acb);