libc

my libc
git clone git://git.evenfri.duckdns.org/libc.git
Log | Files | Refs | README

commit 422fc9d3e9ffc3dacb72e8074c5c2b0cf3b2fb2a
parent 2d5ee6f51710e487453984a19c8f1c62e098ef1a
Author: evenfri <evenfri256@gmail.com>
Date:   Tue, 11 Aug 2026 02:19:45 +0800

add rmdir

Diffstat:
Mlibc.h | 2++
Mmkfile | 1+
Armdir.c | 17+++++++++++++++++
3 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/libc.h b/libc.h @@ -51,6 +51,7 @@ struct linux_dirent64 { #define sys_getcwd 79 #define sys_chdir 80 #define sys_mkdir 83 +#define sys_rmdir 84 #define sys_unlink 87 #define sys_mount 165 #define sys_getdents64 217 @@ -90,6 +91,7 @@ int mount(const char *source, const void *data); int chdir(const char *path); int mkdir(const char *path, unsigned int mode); +int rmdir(const char *path); int unlink(const char *path); char *getcwd(char *buf, size_t size); int getdents64(int fd, struct linux_dirent64 *dirp, unsigned int count); diff --git a/mkfile b/mkfile @@ -28,6 +28,7 @@ ofiles = start.$o \ getcwd.$o \ chdir.$o \ mkdir.$o \ + rmdir.$o \ unlink.$o \ getdents.$o \ utime.$o \ diff --git a/rmdir.c b/rmdir.c @@ -0,0 +1,17 @@ +/* + * rmdir.c - rmdir system call + * Copyright (C) 2026. All rights reserved. + */ + +#include "libc.h" + +int rmdir(const char *path) { + int ret = syscall(sys_rmdir, path); + + if (ret < 0) { + errno = -ret; + return -1; + } + + return ret; +}