/* * wnix, a Unix-like operating system for WebAssembly applications. * Copyright (C) 2025 Xavier Del Campo Romero * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ #include #include #include #include int open(const char *const path, const int flags, ...) { int __wnix_open(const char *, int, mode_t, int *) __attribute__(( __import_module__("wnix"), __import_name__("open") )); mode_t mode = 0; va_list ap; va_start(ap, flags); if (flags & O_CREAT) mode = va_arg(ap, mode_t); va_end(ap); return __wnix_open(path, flags, mode, &errno); }