diff options
author | Anton Kling <anton@kling.gg> | 2023-11-24 21:29:12 +0100 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2023-11-24 21:29:12 +0100 |
commit | 08b63b747f9a6b4d1460195f6ca68680abcdd656 (patch) | |
tree | 0a1b8620cd3b56bf1d9b389f44876e8c391bd47e /userland/libc/fcntl | |
parent | 6757803629574fe46e9047be8567e0c7e0522973 (diff) |
Refactor open()
Diffstat (limited to 'userland/libc/fcntl')
-rw-r--r-- | userland/libc/fcntl/open.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/userland/libc/fcntl/open.c b/userland/libc/fcntl/open.c new file mode 100644 index 0000000..37bb629 --- /dev/null +++ b/userland/libc/fcntl/open.c @@ -0,0 +1,15 @@ +#include <fcntl.h> +#include <syscall.h> +#include <stdarg.h> + +int open(const char *file, int flags, ...) { + mode_t mode = 0; + + if (flags & O_CREAT) { + va_list ap; + va_start(ap, flags); + mode = va_arg(ap, mode_t); + va_end(ap); + } + RC_ERRNO(syscall(SYS_OPEN, file, flags, mode, 0, 0)); +} |