Код
#include <stdio.h>
int main()
{
printf ("test1\n");
printf ("test2");
printf ("3\n"); //Breakpoint here
while(1);
return 0;
}
int main()
{
printf ("test1\n");
printf ("test2");
printf ("3\n"); //Breakpoint here
while(1);
return 0;
}
Если компилируем с Library Normal, то в точке останова на терминале будет "test1\ntest2", а после нее "test1\ntest23". В общем, предсказуемо. Но если скомпилировать с Library Full, то в точке останова "test1", а после нее "test1\ntest23". То есть, вывод в терминал пойдет только после '\n'.
Вопрос номер один: как подлечить такое поведение
Вопрос номер два: как написать функцию __write, чтобы при stdout, stderr вывод осуществлялся в терминал, как обычно, а при записи в другие файлы шел куда надо (например, в UART). То, есть, если я __write не определяю вообще, то fprintf (stdout, ...) печатает в терминал, а в UART печатать не могу, но если переопределять __write, то непонятно, как печатать в терминал?