首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从printf以彩色打印(9)

从printf以彩色打印(9)
EN

Stack Overflow用户
提问于 2014-05-10 09:32:38
回答 1查看 70关注 0票数 1

是否可以从内核版本的printf以彩色打印到控制台?我能看到和userland相同的转义代码吗?内核是否充分理解控制台,能够为特定颜色提供termcap样式的API和常量?如果是,它们定义在哪个头中?

EN

回答 1

Stack Overflow用户

发布于 2014-05-20 08:56:47

当然,您可以打印内核中的任意转义序列。它会很乐意把任何字节放在终端上。这些字节是否会被解释为颜色,内核,一般来说,不知道。

所以,一旦你阅读了内核消息,你就可以打印出相同的转义代码(例如,如果内核打印XTERM风格的颜色,而你碰巧通过串口使用XTERM或者模拟XTERM转义序列本身的终端程序来查看它们)

至于内核是否了解您的终端类型并能够使用termcap信息,答案通常是否定的。

在用户领域,终端类型是一个约定问题。登录脚本尝试找出您可能连接到哪种类型的终端,然后在shell的环境中将TERM设置为适当的类型。Forked进程继承它并使用该类型,以便找出如何在特定终端上执行某些操作。通常它涉及到某种咒骂库。

另一方面,内核是相当简约的野兽,无论它的控制台是串口、火线还是视频卡,它都不会给出太多的东西。出于所有实际目的,控制台甚至可能根本不连接到任何东西。

实际上,您需要解决两个问题:

  • 可以为您想要使用特定TTY设备配置终端类型。
  • 为内核提供了一些终端类型的termcap/terminfo数据,以及生成特定TTY上输出的适当转义序列的应用编程接口。换句话说--内核中的curses库。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23576252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档