Ответ jvasaks в основном правильный, за исключением того, что он не завершил нулем «блок». Код должен быть таким:
void send250(char *inMsg, int msgLen)
{
char block[250];
while (msgLen > 0)
{
int len = (msgLen>249) ? 249 : msgLen;
strncpy(block, inMsg, 249);
block[249] = 0;
// send block to other entity
msgLen -= len;
inMsg += len;
}
}
Итак, теперь блок состоит из 250 символов, включая завершающий ноль. strncpy завершит последний блок null, если осталось менее 249 символов.