noerr.c 380 B

1234567891011121314151617181920212223242526272829
  1. #include "noerr.h"
  2. #include <unistd.h>
  3. #include <errno.h>
  4. int close_noerr(int fd)
  5. {
  6. int saved_errno = errno, ret;
  7. if (close(fd) != 0)
  8. ret = errno;
  9. else
  10. ret = 0;
  11. errno = saved_errno;
  12. return ret;
  13. }
  14. int unlink_noerr(const char *pathname)
  15. {
  16. int saved_errno = errno, ret;
  17. if (unlink(pathname) != 0)
  18. ret = errno;
  19. else
  20. ret = 0;
  21. errno = saved_errno;
  22. return ret;
  23. }