not all platforms have a O_CLOEXEC flag for open(2)