If open(O_CLOEXEC) fails, fall back to fcntl(CLOEXEC) This is needed for folks who build with recent Linux kernel headers but run with older kernels.