]> git.ozlabs.org Git - ccan/blobdiff - ccan/noerr/noerr.c
hex: fix comment
[ccan] / ccan / noerr / noerr.c
index d6df81f7a0677dad1591473a79ed6432cead713c..972f3074541b650c4cb471eccd362fa809262b3c 100644 (file)
@@ -1,6 +1,8 @@
+/* CC0 (Public domain) - see LICENSE file for details */
 #include "noerr.h"
 #include <unistd.h>
 #include <errno.h>
+#include <stdlib.h>
 
 int close_noerr(int fd)
 {
@@ -15,6 +17,19 @@ int close_noerr(int fd)
        return ret;
 }
 
+int fclose_noerr(FILE *fp)
+{
+       int saved_errno = errno, ret;
+
+       if (fclose(fp) != 0)
+               ret = errno;
+       else
+               ret = 0;
+
+       errno = saved_errno;
+       return ret;
+}
+
 int unlink_noerr(const char *pathname)
 {
        int saved_errno = errno, ret;
@@ -27,3 +42,10 @@ int unlink_noerr(const char *pathname)
        errno = saved_errno;
        return ret;
 }
+
+void free_noerr(void *p)
+{
+       int saved_errno = errno;
+       free(p);
+       errno = saved_errno;
+}