#define AT_REMOVEDIR 500 int unlink(int dir_fd, const char *path, int path_len, flags);
The syscall queues for deletion the file pointed to by path. If
path points to a directory, it will fail unless AT_REMOVEDIR is
passed in flags, in which case it will only remove it if the directory
is empty.
The syscall returns 0 or -1 on failure, with the following errno:
ENOENT: delete points to a file not valid for deletion.
ENOTEMPTY: A directory was attempted to be removed with
AT_REMOVEDIR, and it was not empty.
EISDIR: A directory was passed for unlinking with no
AT_REMOVEDIR.