better O_CLOEXEC