в общем вопрос:
может система так и должна работать, наверно она просто добаляет символ новой строки при выходе.
write(2, "total recieve is 101702590\n", 27total recieve is 101702590
) = 27
close(1) = 0
close(4) = 0
close(3) = 0
brk(0x9161000) = 0x9161000
write(1, "\n", 1) = -1 EBADF (Bad file descriptor)
exit_group(0)
это вывод strace
а вот исходник
fprintf(stderr, "total recieve is %d\n", t_recv);
close(f_desc);
free(buffer);
exit(0);
никаких вызовов write перед выходом нет.
в общем, если это стандартное поведение системы, то соответственно вопрос.
если я из программы пишу в stdout, а его, в свою очередь перенаправляю в файл, то в файл попадает лишний перевод строки.
как этого избежать, как-то закрытие stdout перед выходом из программы мне не нравится, система ругается и по видимому это не тру вей.