C программа печати странных символов

У меня есть программа, которая читает содержимое файла и сохраняет его вbuf, После прочтения содержимого предполагается скопировать два на два символа в массив. Этот код работает нормально, если я не пытаюсь читать из файла, но если я пытаюсь прочитать его из файла, printf из буфера выводит два нужных мне символа, но добавляет странные символы. Я подтвердил, и он правильно сохраняет в buf, никаких странных символов там нет. Я не могу понять, что не так ... Вот код:

char *buffer = (char*)malloc(2*sizeof(char));
char *dst = buffer;
char *src = buf;
char *end = buf + strlen(buf);
char *baby = '\0';
while (src<= end)
{
    strncpy(dst, src, 2);
    src+= 2;
    printf("%s\n", buffer);
}

Ответы на вопрос(1)

Ваш ответ на вопрос