#include "errno.h" // for EISDIR, errno #include // for AT_FDCWD, AT_REMOVEDIR #include // for remove #include // for __syscall_3, syscall int remove(const char *path) { if (syscall(unlinkat, AT_FDCWD, path, 0) < 0) { if (errno == EISDIR) { return syscall(unlinkat, AT_FDCWD, path, AT_REMOVEDIR); } return -1; } return 0; }