remove.c raw

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