the length of the iov array should be limited to IOV_MAX, which is defined in limits.h