LINUX.ORG.RU

Отображение числовых значений


0

0

C'ишная прога выводит в терминал значения printf("COUNTER - %d\r", ++counter); Это в цикле постоянно выводится и таких выводов разных значений несколько. Можно ли снизить накладные расходы на вывод ? При этом добавив функциональности - в разные части терминала, разными цветами ... ncurses пользую. Вот хотелось бы узнать может есть более быстрые способы с большей функциональностью (окошко нарисовать и в него выводить...?) Или printf в терминал наиболее быстрое ?

anonymous

сам то понял чего спросил?
как может ncurses или окошки быть быстрее голого терминала?

а насчет быстрее printf - тот же puts ;)

Ant0
()
Ответ на: комментарий от Ant0

> и все равно быстрее чем ncurses под иксовым терминалом! ;)

неее.. имею ввиду X'овый терминал vs окошко на C/Motif (например) ?

eraser
()

можно вывод printf ускорить, если включить полную буферизацию и сбрасывать буфер самостоятельно.. man setvbuf, fflush..

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

что интересно, в мане написано: You must make sure that both buf and the space it points to still exist by the time stream is closed. И приведен код:

       #include <stdio.h>
       int main()
       {
           char buf[BUFSIZ];
           setbuf(stdin, buf);
           printf("Hello, world!\n");
           return 0;
       }

А что бывает с теми, кто это условие не соблюдает? :)

BreadFan ★★
()
Ответ на: комментарий от BreadFan

> А что бывает с теми, кто это условие не соблюдает? :)

SIGSEGV? буфера уже нет но поток на него все еще ссылается.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от anonymous

Как я понял, буферу настает капец при выходе из main, a stdin закрывается позже (а буфера больше нет)

BreadFan ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.