]> git.ozlabs.org Git - ccan/blobdiff - ccan/noerr/noerr.c
Move modules to ccan/ tools to tools/
[ccan] / ccan / noerr / noerr.c
diff --git a/ccan/noerr/noerr.c b/ccan/noerr/noerr.c
new file mode 100644 (file)
index 0000000..d6df81f
--- /dev/null
@@ -0,0 +1,29 @@
+#include "noerr.h"
+#include <unistd.h>
+#include <errno.h>
+
+int close_noerr(int fd)
+{
+       int saved_errno = errno, ret;
+
+       if (close(fd) != 0)
+               ret = errno;
+       else
+               ret = 0;
+
+       errno = saved_errno;
+       return ret;
+}
+
+int unlink_noerr(const char *pathname)
+{
+       int saved_errno = errno, ret;
+
+       if (unlink(pathname) != 0)
+               ret = errno;
+       else
+               ret = 0;
+
+       errno = saved_errno;
+       return ret;
+}