printf в C печатает спецификатор на консоль

Я пытаюсь напечатать некоторую статистику о структуре дыр в ядре MINIX 3, я изменил файл alloc.c, чтобы напечатать количество дыр в списке, количество итераций до того, как дыра в списке была найдена, и средний размер отверстия. Я использую printf для печати на консоли, но он продолжает выводить спецификаторы типа на экран консоли. Вот кусок моего кода:

printf("Total number of holes: %i\n", numHoles);

вывод:

Total number of holes: %i

Он печатает спецификатор, как если бы он не распознал спецификатор типа. Я объявил numHoles как int numHoles = 0; и просто увеличил его в структуре цикла. Я также добавил #include <stdio.h> в начало файла. Что я делаю неправильно?


person Ronnie Van Dyk    schedule 16.10.2015    source источник
comment
Вы пробовали %d или %u?   -  person William Pursell    schedule 17.10.2015
comment
Вы делаете это в ядре MINIX? printf() может отсутствовать в ядре, обычно есть более простая функция.   -  person Barmar    schedule 17.10.2015
comment
Можете ли вы показать минимально воспроизводимый пример?   -  person t0mm13b    schedule 17.10.2015
comment
@ t0mm13b Что именно вам не хватает? Код, вывод и пояснения — все есть.   -  person GolezTrol    schedule 17.10.2015
comment
Нет, у меня есть еще один оператор printf, который печатает среднее значение, которое является значением с плавающей запятой, используя спецификатор %f, и происходит то же самое, %f буквально выводится на экран. Поэтому я предполагаю, что проблема не в используемом типе. Но я все равно попробую. @WilliamPursell   -  person Ronnie Van Dyk    schedule 17.10.2015
comment
@GolezTrol вопрос предполагает, что это стандартный консольный материал.   -  person t0mm13b    schedule 17.10.2015
comment
%f тоже не всегда реализуется. Попробуйте базовый тест с %d и, если необходимо, приведите значение с помощью (int)   -  person Weather Vane    schedule 17.10.2015
comment
@Barmar Да, это в ядре. Какие еще функции существуют?   -  person Ronnie Van Dyk    schedule 17.10.2015
comment
Думаете, вам следует изменить свой вопрос, указав, что это код ядра, printf будет недоступен, возможно, более простой printf без спецификаторов формата? см. это   -  person t0mm13b    schedule 17.10.2015
comment
Я не знаю конкретно о MINIX, но ядра Unix имеют printk() .   -  person Barmar    schedule 17.10.2015