syscall errors

display `errno` and `strerror(errno)` on syscall failures
Yeah, it is true that errors get logged in `mkstemp_ex()` but I would still keep this error message around here in case the upstream code changes for some reason and stops making those errors for whatever reason. Hopefully, that makes sense. Sure it is a little redundant but I'd rather this than not knowing what happened.