Если вы фактически создаете буфер в соответствии с предложением dirks, то:
int readResult = read(socketFileDescriptor, buffer, BUFFER_SIZE);
может полностью заполнить буфер, возможно, перезаписывая символ завершающего нуля, от которого вы зависите при извлечении в поток строк. Вам нужно:
int readResult = read(socketFileDescriptor, buffer, BUFFER_SIZE - 1 );
Пакет datetime предоставляет команду \currenttime
. Я бы рекомендовал использовать \currenttime
напрямую, а не пытаться изменить / переопределить \today
.