20 lines
415 B
C
20 lines
415 B
C
#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);
|
|
}
|