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

wmrwinhap 2002-11-18 05:29:06
DOS文本模式下可通过写地址0xB8000000开始的内存直接输出彩色文本,不用移动当前光标,而且显示速度比printf快。
Linux下能实现类似的功能呢?
...全文
55 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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可以。

23,120

社区成员

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

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