Проблема с C ++ микроядром - PullRequest
0 голосов
/ 27 июля 2011

Хорошо, я работаю над своим назначением для операционных систем.Мне нужно написать микроядро, которое может выполнять некоторые базовые функции с потоками, семафорами, событиями и т. Д. BCC 3.1 имитирует мою системную среду.Классическая отладка действительно не нужна.Я отлаживаю в стиле cout.Проблема в странном поведении cout.Он записывает в блоки или что-то.Если я делаю, например, 40 койт, это все записывает.Если я сделаю 39 из них, он не напишет ни одного из них.С другой стороны, если я делаю от 40 до 79 раздач, он по-прежнему записывает только первые 40, но если я делаю 80 из них, они все в порядке и т. Д. Числа не точны, я не уверен, какое число на самом деле.Но я также заметил, что изменение длины строки, которая является cout-ed, действует так же.Только я не знаю, сколько символов равняется одному вызову cout.Дополнительная информация предоставляется по запросу.Спасибо вперед.

1 Ответ

1 голос
/ 27 июля 2011

звучит как буферизация, независимо от того, std::cout не должен буферизовать вывод. в любом случае вы можете попробовать промыть cout на

std::cout.flush();

или

std::cout << std::flush;

или

std::cout << std::endl;

или даже отключив буферизацию:

std::cout.rdbuf()->pubsetbuf(0, 0);

...