diff options
Diffstat (limited to 'userland/libc/fcntl/open.c')
-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)); +} |