如何在控制台Linux中显示许多进度条?

时间:2017-11-04 21:30:20

标签: c linux console progress-bar

我正在尝试使用Ubuntu中的c创建简单的应用程序,它将文件夹复制到其他地方。每个文件都必须在单独的线程和控制台中复制我希望看到每个复制文件的进度。通常我在使用

printf("document1.txt #######                 %d \n", progress);

我知道我可以使用\ r覆盖一行 但是我如何在线之间移动?

我只想在控制台中看到类似这样的内容:

document1.txt: ###########=>                   30% is done
video1.txt:    ##=>                             5% is done
video2.txt:    ######################=>        70% is done

1 个答案:

答案 0 :(得分:2)

ANSI escape code, on Wikipedia。正如艾哈迈德·马苏德(Ahmed Masud)指出的那样,有一些curses / ncurses库将API放在这些代码序列之上。

一种常见的方法是简单地清除屏幕并打印整页数据。大多数系统今天都能够快速地完成这项工作,它可以毫无欢乐地闪烁,但只能写入屏幕上已更改的单元格,更加可靠地无闪烁。

编辑:其他参考: