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