diff options
Diffstat (limited to 'libc/src/read.c')
-rw-r--r-- | libc/src/read.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/libc/src/read.c b/libc/src/read.c new file mode 100644 index 0000000..aeea537 --- /dev/null +++ b/libc/src/read.c @@ -0,0 +1,21 @@ +#include "reent.h" +#include "errno.h" +#include <fio.h> + +ssize_t read(int fd, void * buf, size_t size) { + ssize_t r; + + if (!fio_is_open(fd)) { + _impure_ptr->_errno = EBADF; + return -1; + } + + r = fio_read(fd, buf, size); + + if (r < 0) { + _impure_ptr->_errno = EINVAL; + return -1; + } + + return r; +} |