скажите зачем end1 в конце функций?
Там буква l в конце
Это чтобы вставить символ новой строки в поток + вроде бы flush() делает (обычно инфа сначала записывается буфер, а потом уже туда, куда надо, а flush() даёт команду накопившееся в буфере записать куда надо)