netinet/in.h: add IPPROTO_MH
[uclibc-ng.git] / libc / stdio / remove.c
blobaf285073369b27debd4197a9d5aca4732adf851c
1 /* Copyright (C) 2004 Manuel Novoa III <mjn3@codepoet.org>
3 * GNU Library General Public License (LGPL) version 2 or later.
5 * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
6 */
8 #include "_stdio.h"
10 #include <unistd.h>
11 #include <errno.h>
13 /* SUSv3 states:
14 * If path does not name a directory, remove(path) shall be equivalent
15 * to unlink(path). If path names a directory, remove(path) shall be
16 * equivalent to rmdir(path).
19 int remove(register const char *filename)
21 int saved_errno = errno;
22 int rv;
24 rv = rmdir(filename);
25 if ((rv < 0) && (errno == ENOTDIR)) {
26 __set_errno(saved_errno); /* Need to restore errno. */
27 rv = unlink(filename);
29 return rv;
31 libc_hidden_def(remove)