summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-10-07 15:39:31 -0400
committerIan Moffett <ian@osmora.org>2025-10-07 15:41:49 -0400
commit49ebfc4ef4d7194462eba62b5ad452079ff904cc (patch)
treef23da9f36a4257d714a9a40b9450c63f2dd39c7f /src
parentb696b9b4da96d279ec8ea56a4c1977f843b3680c (diff)
kern: filedes: Write non standard streams
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src')
-rw-r--r--src/sys/os/os_filedes.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/sys/os/os_filedes.c b/src/sys/os/os_filedes.c
index bb01f97..298a18a 100644
--- a/src/sys/os/os_filedes.c
+++ b/src/sys/os/os_filedes.c
@@ -250,6 +250,10 @@ write(int fd, const void *buf, size_t count)
return -EPERM;
}
+ /*
+ * Handle standard streams separately, otherwise if not a
+ * standard dream, write to it as a normal file
+ */
memcpy(kbuf, buf, count);
switch (fd) {
case STDOUT_FILENO:
@@ -259,7 +263,10 @@ write(int fd, const void *buf, size_t count)
);
break;
default:
- return -EBADF;
+ if (fdp->vp == NULL) {
+ return -EIO;
+ }
+ return vop_write(fdp->vp, kbuf, count);
}
return count;