c - 如何在Linux控制台中显示多个进度条?

标签 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

最佳答案

参见ANSI escape code, on Wikipedia 。正如 Ahmed Masud 指出的那样,curses/ncurses 库将 API 置于这些代码序列之上。

一种常见的方法是简单地清除屏幕并打印整页数据。如今,大多数系统执行此操作的速度足够快,可以接受可接受的无闪烁,但仅写入屏幕上已更改的单元格,更可靠地无闪烁。

编辑:其他引用:

关于c - 如何在Linux控制台中显示多个进度条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47115822/

相关文章:

将包含十进制数字的字符串转换为无符号字符

将负数连接到二进制数

c - 确定文件是否是 zip 存档内的目录

c - 使用openssl解密文件

linux - 如何在 "set -o posix"之后取消 posix 模式?

c# - 如何在控制台格式化日志输出?(Microsoft.Extensions.Logging)

c++ - C/C++ Linux下的Packet Sniffer

c++ - 通过 dlsym 访问 C 中的阴影全局变量不起作用

java - 在 Windows 中使用 Java 为文本着色

c++ - Visual C++ 启用控制台