blob: 28fe0360feda183e84eeeaae1739cc93852ee833 [file] [log] [blame] [raw]
/* A part of the Native C Library for Windows NT
Copyright 2007-2015 PC GO Ld.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*/
#include <unistd.h>
#include <errno.h>
int remove(const char *pathname) {
/* First try to unlink since this is more frequently the necessary action. */
if(unlink(pathname) < 0 &&
/* If it is indeed a directory, try to remove it */
(errno != EISDIR || rmdir(pathname) < 0)) {
/* Cannot remove the object for whatever reason. */
return -1;
}
return 0;
}