在终端显示多行文本并不断刷新,像top那样。怎么弄?

AgedBOY 2013-11-04 09:15:51
各位高手,我刚入门Linux编程。最近要写一程序,运行过程中要在终端显示很多文本(多行),并以一定频率不断刷新。有些类似top命令那样。

不知道常规做法一般是怎样弄?总不能总是使用system("clear")吧?top大概是怎么弄的?vi又是怎么弄的?我看vi甚至还能在退出后恢复先前的终端内容。

另外,不知道我要的这个方法与distribution有关吗?希望没有。万一有,我至少需要在RHEL 5上能使用。

不胜感谢。
...全文
1471 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
AgedBOY 2013-11-04
  • 打赏
  • 举报
回复
对,读top的源码是个好主意。侯捷先生说源码面前,了无秘密嘛。 不过大家都去读源码,还要CSDN干吗? 这竟然还是所谓版主回复的。
ljc007 2013-11-04
  • 打赏
  • 举报
回复
引用
top大概是怎么弄的?
阅读top命令的源代码
AgedBOY 2013-11-04
  • 打赏
  • 举报
回复
另外我知道一种以“\033[”开头的一批控制字串,用printf输出出去就可以起作用。 因此就很想用“\033[s”和“\033[u”来保存、恢复光标位置,以便以不停改写的方式实现。可是不知道为什么,在“\033[”系列里,似乎唯独“[s”和“[u”不起作用!其他例如设置颜色那些都可以。
mymtom 2013-11-04
  • 打赏
  • 举报
回复
Linux的top使用curses库
max_min_ 2013-11-04
  • 打赏
  • 举报
回复
引用 3 楼 AgedBOY 的回复:
对,读top的源码是个好主意。侯捷先生说源码面前,了无秘密嘛。 不过大家都去读源码,还要CSDN干吗? 这竟然还是所谓版主回复的。
呵呵,你要知道top是怎么弄的只有去阅读源码了,学习下! 另外,别人知道的也是阅读源码知道的!所以建议你去看看源码而已!
happygyt 2013-11-04
  • 打赏
  • 举报
回复
1.printf输出终端控制字符, 移动光标:printf("\33[%d;%dH", y, x) 2.使用ncurses库

23,216

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧