Index: fusl/src/stdio/remove.c |
diff --git a/fusl/src/stdio/remove.c b/fusl/src/stdio/remove.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..942e301a4c035f491c6b0ffef47b8e1572312678 |
--- /dev/null |
+++ b/fusl/src/stdio/remove.c |
@@ -0,0 +1,19 @@ |
+#include <stdio.h> |
+#include <errno.h> |
+#include <fcntl.h> |
+#include "syscall.h" |
+ |
+int remove(const char *path) |
+{ |
+#ifdef SYS_unlink |
+ int r = __syscall(SYS_unlink, path); |
+#else |
+ int r = __syscall(SYS_unlinkat, AT_FDCWD, path, 0); |
+#endif |
+#ifdef SYS_rmdir |
+ if (r==-EISDIR) r = __syscall(SYS_rmdir, path); |
+#else |
+ if (r==-EISDIR) r = __syscall(SYS_unlinkat, AT_FDCWD, path, AT_REMOVEDIR); |
+#endif |
+ return __syscall_ret(r); |
+} |