导航
  • 主页
  • 系统维护与使用
  • 应用程序开发
  • 内核源代码
  • 驱动程序开发
  • CPU和硬件区
  • UNIX文化
  • Solaris
  • Power Linux
  • 问答

Linux下如何直接输出彩色文本?类似于DOS的直接写屏的

wmrwinhap 2002-11-18 05:29:06
DOS文本模式下可通过写地址0xB8000000开始的内存直接输出彩色文本,不用移动当前光标,而且显示速度比printf快。
Linux下能实现类似的功能呢?
...全文
27 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yrj 2002-11-22
同上
回复
wmrwinhap 2002-11-22
Thank you very much !
回复
x86 2002-11-22
好好看看ncurses编程,都有的。
简单的原理是curses可以使用buffer,你在buffer中修改,然后刷新到屏幕。buffer就是一块内存,相当于直接写屏。
一般linux的console编程大多用curses,这方面的资料很多的,ncurses自己就带了不少例子,你装一个ncurses-devel包,在/usr/share/doc/ncurses-devel-5.2/test下面有例子。
回复
wmrwinhap 2002-11-22
谢谢!
但我想将全屏置为蓝色,然后再显示彩色文本,那么怎样清屏呢?是先取屏幕分辨率,然后循环显示蓝底空格吗?怎么取屏幕分辨率?
回复
x86 2002-11-21
用ncurses,下面是一个简单例子,写一行黑底红字

#include <curses.h>

int main(int argc, char* argv[]){
initscr();
start_color();
init_pair(1, COLOR_RED, COLOR_BLACK);
attron(COLOR_PAIR(1));
mvaddstr(11, 30, "Hello, World!");
refresh();

getch();
endwin();
return 0;
}


gcc -lcurses -o test test.c
回复
wmrwinhap 2002-11-21
你是说FrameBuffer吗?我只想输出彩色文本,而不要通过画点来显示图形,应该不用FrameBuffer。
回复
wwwunix 2002-11-18
用freebuffer可以。
回复
发动态
发帖子
Linux/Unix社区
创建于2007-08-27

2.0w+

社区成员

Linux/Unix社区 应用程序开发区
申请成为版主
社区公告
暂无公告