Мусорный unicode при попытке копировать файл оканчивающийся на \n С

есть цикл который проходится построчно и копирует текст из одного файла в другой. Возникла проблема, когда файл заканчивается на \n, то появляется мусорный юникод. При отладке понял что буфер полон \r\r\r\r... Не совсем понимаю почему так происходит и как это исправить

код:

   do{
        _buf = (char*)malloc(_bufsize * sizeof(_buf));
        _pbuf = fgets(_buf, _bufsize , _res_file);

        if(!_pbuf && !feof(_res_file)){

            ERR("read file err");

            fclose(_res_file);
            fclose(_temp_file);

            return NULL;
        }


        fprintf(_temp_file, "%s", _buf);

        #ifdef DEBUG
            fprintf(stderr, "%d%s%s", _line++, "\t -| ", _buf); // на последней пустой строке мусорный юникод 
        #endif

        free(_buf);
        _buf = NULL;

    }while(!feof(_res_file));

вывод консоль:

** E:\project\FileManageC\res\text123.temp **
1        -| 12345678910
2        -| 2
3        -|
4        -| 4
5        -|
6        -| 6
7        -|
8        -|
9        -| 9
10       -|
11       -| 11
12       -| 12
13       -| 13
14       -|
15       -|
16       -| 16
17       -|
18       -| 18
19       -|
20       -| 20
21       -|
22       -|
23       -| 23
24       -|
25       -| 25 25 25 25 25
Ён║лллллллллллллллл

вывод файл:

12345678910
2

4

6


9

11
12
13


16

18

20


23

25 25 25 25 25 

�
�
�
�
�
... на 1000+ строк

Ответы (0 шт):