xref: /aosp_15_r20/external/musl/src/stdio/remove.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include <stdio.h>
2*c9945492SAndroid Build Coastguard Worker #include <errno.h>
3*c9945492SAndroid Build Coastguard Worker #include <fcntl.h>
4*c9945492SAndroid Build Coastguard Worker #include "syscall.h"
5*c9945492SAndroid Build Coastguard Worker 
remove(const char * path)6*c9945492SAndroid Build Coastguard Worker int remove(const char *path)
7*c9945492SAndroid Build Coastguard Worker {
8*c9945492SAndroid Build Coastguard Worker #ifdef SYS_unlink
9*c9945492SAndroid Build Coastguard Worker 	int r = __syscall(SYS_unlink, path);
10*c9945492SAndroid Build Coastguard Worker #else
11*c9945492SAndroid Build Coastguard Worker 	int r = __syscall(SYS_unlinkat, AT_FDCWD, path, 0);
12*c9945492SAndroid Build Coastguard Worker #endif
13*c9945492SAndroid Build Coastguard Worker #ifdef SYS_rmdir
14*c9945492SAndroid Build Coastguard Worker 	if (r==-EISDIR) r = __syscall(SYS_rmdir, path);
15*c9945492SAndroid Build Coastguard Worker #else
16*c9945492SAndroid Build Coastguard Worker 	if (r==-EISDIR) r = __syscall(SYS_unlinkat, AT_FDCWD, path, AT_REMOVEDIR);
17*c9945492SAndroid Build Coastguard Worker #endif
18*c9945492SAndroid Build Coastguard Worker 	return __syscall_ret(r);
19*c9945492SAndroid Build Coastguard Worker }
20