18 #include <drizzled/internal/my_sys.h>
19 #include <drizzled/error.h>
43 size_t my_read(
int Filedes,
unsigned char *Buffer,
size_t Count, myf MyFlags)
45 size_t readbytes, save_count;
51 if ((readbytes= read(Filedes, Buffer, Count)) != Count)
53 errno= errno ? errno : -1;
54 if ((readbytes == 0 || (
int) readbytes == -1) && errno == EINTR)
58 if (MyFlags & (MY_WME | MY_FAE | MY_FNABP))
60 if (readbytes == (
size_t) -1)
61 my_error(EE_READ, MYF(ME_BELL+ME_WAITTANG),
63 else if (MyFlags & (MY_NABP | MY_FNABP))
64 my_error(EE_EOFERR, MYF(ME_BELL+ME_WAITTANG),
67 if (readbytes == (
size_t) -1 ||
68 ((MyFlags & (MY_FNABP | MY_NABP)) && !(MyFlags & MY_FULL_IO)))
69 return(MY_FILE_ERROR);
70 if (readbytes != (
size_t) -1 && (MyFlags & MY_FULL_IO))
78 if (MyFlags & (MY_NABP | MY_FNABP))
80 else if (MyFlags & MY_FULL_IO)
81 readbytes= save_count;