progressbar is a C-class (it's a convention, dammit) for displaying attractive progress bars on the command line. It's heavily influenced by the ruby ProgressBar gem, whose api and behaviour it imitates.
progressbar is implemented in pure C99, but using a vaguely object-oriented convention.
Example usage:
progressbar *progress = progressbar_new("Loading",100);
for(int i=0; i < 100; i++)
{
// Do some stuff
progressbar_inc(progress);
}
progressbar_finish(progress);
Example output (from progressbar_demo.c
):
Additional examples can be found in test/progressbar_demo.c
One of the things I miss most when I'm writing C instead of Ruby is the how ridiculously easy it is to write user-friendly, informative CLI apps in Ruby. A big part of that, at least for me, is the ProgressBar gem -- and since most of the time when I'm writing C I'm doing so because I need a tool to handle some long-running, processor-intensive task, I'd really like to have a way of seeing at a glance how much time is remaining and how far along we've gotten. Enter progressbar!
Of course, if you're so inclined. progressbar is licensed under a simplified BSD license,
so feel free to take it and run with it. Details can be found in the LICENSE
file.
If progressbar fails to build because termcap.h
isn't found, you're probably missing the ncurses dev libraries.
gcc -c -std=c99 -Iinclude lib/progressbar.c
lib/progressbar.c:13:45: fatal error: termcap.h: No such file or directory
compilation terminated.