CONSOLE_CODES 4
目录
- NAME 名称 控制终端代码
- DESCRIPTION 描述 Linux控制台实现了VT102和ECMA-48/ISO 6429/ANSI X3.64终端控制的子集, 这个子集很庞大,当然还有Linux自己私有的控制序列,以改变颜色配置,字符 集映像,等等.在下面将要给出的表格中,第二列为指定的功能给出了ECMA-48 或者DEC助记符(如果是后者会在前面加有DEC前缀).没有给出助记符的序列 既不是ECMA-48也不是VT102字符. .LP 在所有标准输出进程执行完毕,并且一个字符流被送到控制台 驱动程序准备显示出来的时候,所发生的第一件事就是将进程 使用的代码转换成显示使用的代码. .LP 如果控制台工作于 UTF-8 模式,那么输入的字节会首先编码 成16位的 Unicode 代码.如果不是UTF-8模式,那么每个字节 会按照当前的字符映射表完成转换(转换成Unicode编码的值). 参看下面将要讨论的 CHARACTER SETS 一章. .LP 在一般情况下,Unicode 代码被转换成为存储在视频存储器中的 字体索引,这样对应的具体字符(字符存储在视频ROM中)就显示 在屏幕上了. 注意使用 Unicode 编码允许我们同时使用 512 种不同的字体(和 计算机硬件有关). .LP 如果当前的 Unicode 代码是一个控制字符,或者系统目前正在处 理一个转义序列,处理的方式有些特别.它不会被转换成字体索 引,也不会直接显示在屏幕上.它可能控制光标的移动,或者实现 其它控制功能.参看下面的 LINUX CONSOLE CONTROLS 一节 所进行的讨论. .LP 一般来说直接在程序中插入终端控制字符并不是很好.Linux 支 持终端兼容的 .BR terminfo(5) 数据库. 除了直接插入控制和转义序列,也可以使用象 .BR ncurses(3), .BR tput(1), 或者 .BR reset(1). 这样的显示库或者工具. .SH LINUX CONSOLE CONTROLS Linux终端控制 这一段描述了所有在Linux控制台下使用的调用特殊功能的控制字符 和转义序列(例如.任何不在当前光标处插入可见字符的序列). .SS
- CHARACTER SETS
- MOUSE TRACKING
- 和其它终端的比较 我们已经讨论了几种终端类型,比如Linux 控制台.这类终端称为
- BUGS 在版本为 2.0.23 的内核中,CSI 序列的识别有些问题: 不能识别转义序列中的NUL. .SH 参见 .BR console(4), .BR console_ioctl(4), .BR charsets(7) .SH
CONSOLE_CODES
NAME åç§°DESCRIPTION æè¿°
LINUX CONSOLE CONTROLS Linuxç»ç«¯æ§å¶
Control characters æ§å¶å符
ESC- but not CSI-sequences éæ§å¶è½¬ä¹åºå
ECMA-48 CSI sequence ECMA-48 CSI åºå
ECMA-48 Set Graphics Rendition 设置å¾å½¢å±æ§
ECMA-48 Mode Switches ECMA-48模å¼éæ©
ECMA-48 ç¶ææ¥åå½ä»¤.
DEC Private Mode(DECSET/DECRST)sequences DECç§ææ¨¡å¼åºå.
Linux Console Private CSI Sequences Linuxæ§å¶å°ç§ææ§å¶åºå
CHARACTER SETS å符é
MOUSE TRACKING é¼ æ 轨迹
åå¶å®ç»ç«¯çæ¯è¾
Control-character handling æ§å¶å符å¤ç
Escape sequences 转ä¹åºå
CSI Sequences CSI åºå
BUGS
åè§
è·
NAME åç§°
æ§å¶ç»ç«¯ä»£ç - Linux æ§å¶ç»ç«¯è½¬ä¹åæ§å¶åºå
DESCRIPTION æè¿°
Linuxæ§å¶å°å®ç°äºVT102åECMA-48/ISO 6429/ANSI X3.64ç»ç«¯æ§å¶çåé, è¿ä¸ªå- éå¾åºå¤§,å½ç¶è¿æLinuxèªå·±ç§æçæ§å¶åºå,以æ¹åé¢è²éç½®,å符 éæ å,çç- .å¨ä¸é¢å°è¦ç»åºçè¡¨æ ¼ä¸,第äºå为æå®çåè½ç»åºäºECMA-48 æèDECå©è®°ç¬¦(妿æ¯åèä¼å¨åé¢å æDECåç¼).没æç»åºå©è®°ç¬¦çåºå æ¢ä¸æ¯ECMA-48ä¹ä¸æ¯VT102å符.
å¨æææ åè¾åºè¿ç¨æ§è¡å®æ¯,å¹¶ä¸ä¸ä¸ªå符æµè¢«éå°æ§å¶å° 驱å¨ç¨åºå夿¾ç¤ºåºæ¥çæ¶å,æåçç第ä¸ä»¶äºå°±æ¯å°è¿ç¨ 使ç¨ç代ç è½¬æ¢ææ¾ç¤ºä½¿ç¨ç代ç .
妿æ§å¶å°å·¥ä½äº UTF-8 模å¼,é£ä¹è¾å¥çåèä¼é¦åç¼ç æ16ä½ç Unicode 代ç .妿䏿¯UTF-8模å¼,é£ä¹æ¯ä¸ªåè 伿ç§å½åçå- 符æ å°è¡¨å®æè½¬æ¢(è½¬æ¢æUnicodeç¼ç çå¼). åçä¸é¢å°è¦è®¨è®ºç CHARACTER SETS ä¸ç« .
å¨ä¸è¬æåµä¸,Unicode 代ç è¢«è½¬æ¢æä¸ºåå¨å¨è§é¢åå¨å¨ä¸ç å- ä½ç´¢å¼,è¿æ ·å¯¹åºçå·ä½å符(å符åå¨å¨è§é¢ROMä¸)å°±æ¾ç¤º å¨å±å¹ä¸äº. 注æä½¿ç¨ Unicode ç¼ç å许æä»¬åæ¶ä½¿ç¨ 512 ç§ä¸åçåä½(å è®¡ç®æºç¡¬ä»¶æå³).
妿å½åç Unicode ä»£ç æ¯ä¸ä¸ªæ§å¶å符,æèç³»ç»ç®åæ£å¨å¤ çä¸ä¸ªè½¬ä¹åºå,å¤ççæ¹å¼æäºç¹å«.å®ä¸ä¼è¢«è½¬æ¢æåä½ç´¢ å¼,ä¹ä¸ä¼ç´æ¥æ¾ç¤ºå¨å±å¹ä¸.å®å¯è½æ§å¶åæ çç§»å¨,æèå®ç° å¶å®æ§å¶åè½.åçä¸é¢ç LINUX CONSOLE CONTROLS ä¸è æè¿è¡ç讨论.
ä¸è¬æ¥è¯´ç´æ¥å¨ç¨åºä¸æå¥ç»ç«¯æ§å¶åç¬¦å¹¶ä¸æ¯å¾å¥½.Linux æ¯ æç»ç«¯å¼å®¹ç terminfo(5) æ°æ®åº. é¤äºç´æ¥æå¥æ§å¶å转ä¹åºå,ä¹å¯ä»¥ä½¿ç¨è±¡ ncurses(3), tput(1), æè reset(1). è¿æ ·çæ¾ç¤ºåºæèå·¥å·.
LINUX CONSOLE CONTROLS Linuxç»ç«¯æ§å¶
è¿ä¸æ®µæè¿°äºææå¨Linuxæ§å¶å°ä¸ä½¿ç¨çè°ç¨ç¹æ®åè½çæ§å¶å符 å转ä¹åºå(ä¾å¦.ä»»ä½ä¸å¨å½ååæ å¤æå¥å¯è§å符çåºå).
Control characters æ§å¶å符
å½ä¸ä¸ªå符å¨éè¿å符æ å°è¡¨è½¬æ¢ä¹å嫿以ä¸14个代ç ä¹ä¸çæ¶ å表æå®æ¯ä¸ä¸ªæ§å¶å符. 00(NUL),07(BEL),08(BS),09(HT),0a(LF),0b(VT), 0c(FF),0d(CR),0e(SO),0f(SI),18(CAN),1a(SUB), 1b(ESC),7f(DEL). æä»¬å¯ä»¥éè¿è®¾ç½® ‘æ¾ç¤ºæ§å¶å符’ 模å¼(è§ä¸æ)以å许07,09,0b, 18,1a,7f åæ®éåç¬¦ä¸æ ·æ¾ç¤ºå¨å±å¹ä¸.å¦ä¸æ¹é¢,å¨UTF-8模å¼ä¸ ææä½äº 00-1fä¹é´ç代ç é½è¢«è®¤ä¸ºæ¯æ§å¶å符,èä¸ç®¡æ¯å¦å¤äº ‘æ¾ç¤ºæ§å¶å- 符’模å¼.
ä¸ä¸ªæ§å¶å符ä¼ç«å»çæ,ç¶å被丢å¼(å³ä½¿æ¯å¨è½¬ä¹åºåä¸é´), ä¹å转ä¹åºåæç»§ç»å¤çä¸ä¸ä¸ªå符. (å¨ä»»ä½æåµä¸,ESCé½è¡¨ç¤ºä¸ä¸ªæ°ç转ä¹åºåçå¼å§,å¯è½å¯¼è´ åä¸ä¸ªåºåçéæ- £å¸¸ç»æ¢,CANåSUB ç»æ¢ä»»ä½è½¬ä¹åºå.) å¯è¯å«çæ§å¶å- 符æ¯BEL,BS,HT,LF,VT,FF,CR,SO,SI,CAN, SUB,ESC,DEL,CSI.ä»ä»¬çåè½å¦ä¸.:
|
BEL(0x07,ˆG)é声; | |
|
BS(0x08,ˆH)åé䏿 ¼(å¨è¡é¦ä¸èµ·ä½ç¨); | |
|
HT(0x09,ˆI)è·³è³ä¸ä¸ä¸ªå¶è¡¨ä½.妿åé¢å·²æ²¡æå¶è¡¨ä½åè·³è³è¡å°¾; | |
|
LF(0x0A,ˆJ),VT(0x0B,ˆK),FF(0x0C,ˆL)ä¸èé½è¡¨ç¤ºæ¢è¡; | |
|
CR(0x0D,ˆM)å车并æ¢è¡; | |
|
SO(0x0E,ˆN)æ¿æ´» G1 å符é, å¦æè®¾ç½®äº LF/NL(æ°è¡æ¨¡å¼)è¿è¦å ä¸å车æ¢è¡; | |
|
SI(0x0F,ˆO)æ¿æ´» G0 å符é; | |
|
CAN(0x18,ˆX),SUB(0x1A,ˆZ)两èé½è¡¨ç¤ºä¸æè½¬ä¹åºå; | |
|
ESC(0x1B,ˆ[)å¼å§ä¸ä¸ªæ°ç转ä¹åºå; | |
|
DEL(0x7F)忽ç¥; | |
|
CSI(0x9B)çåäº ESC [; |
ESC- but not CSI-sequences éæ§å¶è½¬ä¹åºå
|
|
|||||
|
|
|||||
|
|
|||||
|
|
|||||
|
|
|||||
|
|
|||||
|
|

ECMA-48 CSI sequence ECMA-48 CSI åºå
CSI(æè ESC [)åé¢è·çåæ°åºå大é¨åæ¯NPAR(16), å°±æ¯ç±åå·éå¼çåè¿å¶æ°.ç©ºåæ°æç¼ºå°ç忰以0å¤ç. å¯ä»¥ç¨ä¸ä¸ªé®å·ä»£æ¿åæ°åºå.
å¨ä»»ä½æåµä¸,ç³»ç»è¯»å CSI [(æè ESC [ [)åçå个å符, èå¿½ç¥æ´ä¸ªåºå.(ç¨äºå¿½ç¥åæ¾åè½é®.)
CSI åºåçå¨ä½ç±å¶æåä¸ä¸ªå符å³å®.
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|

ECMA-48 Set Graphics Rendition 设置å¾å½¢å±æ§
ECMA-48 SGR åºå ESC [ <parameters> m 设置æ¾ç¤ºå±æ§. åæ ·çåºåå¯ä»¥è®¾ç½®ä¸ä¸ªæå¤ä¸ªå±æ§.
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|

ECMA-48 Mode Switches ECMA-48模å¼éæ©
ESC [ 3 h
DECCRM(é»è®¤å³é): æ¾ç¤ºæ§å¶å符.
ESC [ 4 h
DECIM(é»è®¤å³é): 设置æå¥æ¨¡å¼.
ESC [ 20 h
LF/NL(é»è®¤å³é): èªå¨å¨CRåå ä¸ LF,VT æè FF.
ECMA-48 ç¶ææ¥åå½ä»¤.
ESC [ 5 n
设å¤ç¶ææ¥å(DSR): 以 ESC [ 0 n åºç(ç»ç«¯åå¤å¥½).
ESC [ 6 n
åæ ä½ç½®æ¥å(CPR): 以ESC [ y ; x R åºç, è¿é x,y æåæ ä½ç½®.
DEC Private Mode(DECSET/DECRST)sequences DECç§ææ¨¡å¼åºå.
è¿éç»åºçåºåå¨
ECMA-48䏿²¡ææè¿°.æä»¬ååºäºè®¾ç½®æ¨¡å¼åºå;
ç¨læ¿æ¢æåä¸ä¸ªhå°±æ¯é设模å¼åºå.
ESC [ ? 1 h
DECCKM(é»è®¤å³é): æå¼æ¶åæ é®éåº ESC O åç¼, è䏿¯ ESC [.
ESC [ ? 3 h
DECCOLM(é»è®¤ = 80 è¡): 交æ¿éæ© 80/132 è¡æ¨¡å¼.å½åæ¾ç¤º 模å¼ä¸è¶³ä»¥æ»¡è¶³è¦æ±çæ¶å,象 resizecons(8) è¿æ ·çç¨æ·ç¨åºä¼æ¹åç»ç«¯æ¾ç¤ºå¡ç硬件注å.
ESC [ ? 5 h
DECSCNM(é»è®¤å³é): 设置è§é¢å转模å¼.
ESC [ ? 6 h
DECOM(é»è®¤å³é): æå¼æ¶,åæ ä½ç½®ç¨ç¸å¯¹äºæ»å¨æ¡å·¦ä¸è§ çä½ç½®è¡¨ç¤º.
ESC [ ? 7 h
DECAWM(é»è®¤å³é): æå¼èªå¨æ¢è¡.å¨è¿ç§æ¨¡å¼ä¸,ä¸è¡ä¸ è¶è¿80åçå- 符å°èªå¨æ¢è¡(å¨DECCOLMæå¼æ¶æ¯132å).
ESC [ ? 8 h
DECARM(é»è®¤å³é): æå¼é®çèªå¨éå¤.
ESC [ ? 9 h
X10 é¼ æ æ¥å(é»è®¤å³é): 设置æ¥åæ¨¡å¼ 1(æèé设为 0)- è§ä¸æ.
ESC [ ? 25 h
DECCM(é»è®¤æå¼): è®¾ç½®åæ å¯è§.
ESC [ ? 1000 h
X11 é¼ æ æ¥å(é»è®¤å³é): 设置æ¥åæ¨¡å¼ 2(æèé设为 0)- è§ä¸æ.
Linux Console Private CSI Sequences Linuxæ§å¶å°ç§ææ§å¶åºå
ä¸é¢çåºåæ¢ä¸å±äº ECMA-48 å符ä¹ä¸å±äº VT102.å®ä»¬åªå¨ Linuxæ§å¶å°ä¸ä½¿ç¨.é¢è²éç¨ SGR åæ°: 0 = é»è²,1 = 红è²,2 = 绿è²,3 =è¤è² ,4 = èè²,5 = æ´çº¢,6 = åéè,7 = ç½è².

CHARACTER SETS å符é
åæ ¸å¯ä»¥å®æä»¥ä¸åç§å符转æ¢,使å符è½å¨å±å¹ä¸æ¾ç¤º. a)Latin1 -> PC,b)VT100 graphics -> PC,c)PC -> PC, d)user-defined(ç¨æ·èªå®ä¹).
æä¸¤ç§å符é设置,以 G0 å G1å®ä¹,å½åå符éå¿å®æ¯å¶ä¸ä¹ä¸.(å å§å为G0.)é®å¥ ˆN 使 G1 æä¸ºå½åå符é,é®å¥ ˆO 使 G0 æä¸ºå½å设置.
åé
G0 and G1
æåå符æ å°å³ç³»è¡¨,å¹¶ä¸è¿ç§æåå³ç³»å¯ä»¥ç±ç¨æ·æ¹å.
ç³»ç»åå§åæ¶å®ä»¬å嫿å表
a)and b). åºå ESC( B ,ESC( 0 ,ESC( U
å ESC( K åå«ä½¿
G0
æåå符æ å°è¡¨
a),b),c)å d). åºå ESC )B ,ESC )0 ,ESC
)U å ESC )K
åå«ä½¿ G1
æåå-
符æ å°è¡¨
a),b),c)å d).
åºå ESC c éç½®ä¸ä¸ªç»ç«¯,å½å±å¹æ¾ç¤ºåºç°æ··ä¹±æ¶å¯ä»¥ä½¿ç¨è¿ä¸ªåºå. å¦ä¸ä¸ªåºå "echo ˆVˆO" ä»ä»å°G0设为å½åå符é,ä½å¹¶ä¸ä¿è¯ G0 æ åæ å°è¡¨ a). æçLinuxåè¡ç䏿ä¾ä¸ä¸ªå«å reset(1) çç¨åºç¨æ¥éåºåºå "echo ˆ[c". å¦æä½ çç³»ç»ç»ç«¯åéæ²¡æé误( rs1=\Ec), é£ä¹ä½¿ç¨"tput reset"ä¹å¯ä»¥è¾¾å°åæ ·ææ.
ç¨æ·èªå®ä¹æ å°è¡¨å¯ä»¥ç¨ç¨åº mapscrn(8). å®ä¹.è¿ä¸ªç¨åºå·¥ä½æ¶ä¼å°éå¥çå符céè¿å³ç³»å¼s=map[c]æ å°å° å- 符sç¶åé奿¾å.å符sæå¯¹åºçä½å¾æ¾å¨å符ROMéé¢,å¯ä»¥ä½¿ ç¨ç¨åº setfont(8).
æ¥æ¹å.
MOUSE TRACKING é¼ æ 轨迹
é¼ æ 轨迹工å·å¯ä»¥è¿åä¸ xterm å¼å®¹çé¼ æ ç¶ææ¥å.å 为æ§å¶å° 驱卿²¡æåæ³ç¥éé¼ æ ç±»å,åªæå½èæç»ç«¯é©±å¨æ¥æ¶å°é¼ æ è¾å¥ è¾åºæ¶æ¯æ´æ°æ¶æä¼å°è¿äºæ¥åè¿åç»æ§å¶å°è¾å¥æµ..è¿äºé¼ æ è¾å¥è¾åºæ¶æ¯ç± gpm(8) 宿¤è¿ç¨äº§ç.
ææé¼ æ 轨迹转ä¹åºååæ°ç±xterm ç¼ç æè±¡value+040 è¿æ ·çåä¸å- 符形å¼çæ°ååæ°.æ¯å¦,‘!’ ç¼ç æ 1.å±å¹åæ ç³»ç» ä»¥’1’为åºå.
X10 å¼å®¹æ¨¡å¼å¨é¼ æ 鮿䏿¶å°æä¸çé®åé¼ æ ä½ç½®ç¼ç åéåº. ESC [ ? 9 h å许è¿ä¸å¨ä½,ESC [ ? 9 lç¦æ¢è¿ä¸å¨ä½. æé®æä¸æ¶,xterm éåºESC [ M bxy(6 个å符).è¿é b 代表 é®-1,è x å y æ¯é¼ æ ç x å y åæ .è¿å åæ ¸äº§ççåºåç¸å.
常è§ç轨迹模å¼(Linux 2.0.24ä¸åæ¯æ)å¨å·¦å³ä¸¤é®åæ¶æä¸ç¶å éæ¾æ¶éåºè½¬ä¹åºå.ç»åé®ç¼ç ä¹è¢«éåº.ESC [ ? 1000 h åè®¸è¿ ä¸ªå¨ä½èESC [ 1000 l ç¦æ¢è¿ä¸ªå¨ä½.彿鮿䏿èéæ¾æ¶, xterm éåº ESC [ M bxy.b çä½ä¸¤ä½å¯¹æé®ä¿¡æ¯ç¼ç : 0=é¼ æ é®1æä¸,1=é¼ æ é®2 æä¸,2=é¼ æ é®3 æä¸,3=éæ¾. é«ä½ç¼ç 代表ç»åé®,åä¸è¿°ç¼ç ä¸èµ·éåº: 4=Shift,8=Meta(Alt),16=Control(Ctrl).x åy为åçé¼ æ äº ä»¶çxåyåæ .以左ä¸è§ä¸º(1,1).
åå¶å®ç»ç«¯çæ¯è¾
æä»¬å·²ç»è®¨è®ºäºå ç§ç»ç«¯ç±»å,æ¯å¦Linux æ§å¶å°.è¿ç±»ç»ç«¯ç§°ä¸º "VT100å¼å®¹"çç»ç«¯.è¿éæä»¬åä»ç»å¶ä»ä¸¤ç§éè¦çç»ç«¯ç±»å: DEC VT102 å xterm(1) 以åä»ä»¬åLinuxæ§å¶ç»ç«¯çåºå«.
Control-character handling æ§å¶å符å¤ç
vt102 ä¹ä½¿ç¨ä»¥ä¸æ§å¶åºå:
|
NUL(0x00)忽ç¥; | |
|
ENQ(0x05)触ååºçæ¶æ¯; | |
|
DC1(0x11,ˆQ,XON)ç»§ç»ä¼ é; | |
|
DC3(0x13,ˆS,XOFF)使 vt100 忽ç¥(å¹¶åæ¢ä¼ é) é¤ XOFF and XON 以å¤çä¸åå符. |
VT100-like DC1/DC3 è¿ç¨å¯ä»¥ç± tty 驱卿¿æ´».
|
(å¨ vt100 æ¨¡å¼ ä¸)ä½¿ç¨æ§å¶åºå BEL,BS,HT,LF,VT,FF,CR,SO,SI,ESC. |
Escape sequences 转ä¹åºå
VT100 æ§å¶å°åºåä¸å®å¨æ¯æLinuxæ§å¶å°åºå:

ç¨åº xterm (vt100 模å¼)æ¿è®¤ ESC c,ESC # 8,ESC >,ESC =, ESC D,ESC E,ESC H,ESC M,ESC N,ESC O,ESC P ...ESC ESC Z(以 [ ? 1 ; 2 c,‘I am a vt100 with advanced video option’ååº) 以å ESC ˆ ...ESC æä¹åä¸. æ¥å ESC(,ESC ),ESC *,ESC + åè· 0,A,B çå符åºå,åå« ä»£è¡¨çDEC ç¹æ®å- 符,ç»çº¿è®¾ç½®,UK å US ASCIIç . æ¥å ESC ] ä½ä¸ºç¹å®èµæºè®¾ç½®:
|
|
|||||
|
|

以ä¸å符çå«ä¹ç¥æä¸å::
|
|
||
|
|

å®è¿æ¥å以ä¸åºå:
|
|
||||
|
|

å®ä¸è¯å« ESC % ...
CSI Sequences CSI åºå
ç¨åº xterm (ç´å° XFree86 3.1.2G)ä¸è½è¯å«éªçæèä¸å¯è§æ¨¡å¼ç SGRå¼.X11R6 ä¹ä¸è½è¯å«ä»¥ SGRs ä¸ºåæ°è®¾ç½®çè²å½©. xterm å¯ä»¥è¯å«å¶ä»ç ECMA-48 CSI åºå,åªè¦Linuxå¯ä»¥è¯å«. åä¹äº¦ç¶.
xterm å¯ä»¥è¯å«ä»¥ä¸ååºçææ DEC ç§æåºå,使¯ä¸åæ¬ Linux ç§ææ¨¡å¼åºå. å¨ Xterm Control Sequences 䏿å³äº xterm çç§ææ¨¡å¼åºåç讨论.
document by Edward Moy and Stephen Gildea,available with the X distribution.
BUGS
å¨çæ¬ä¸º 2.0.23 çåæ ¸ä¸,CSI åºåçè¯å«æäºé®é¢: ä¸è½è¯å«è½¬ä¹åºåä¸çNUL.
åè§
console(4), console_ioctl(4), charsets(7)
è·
æ¬é¡µé¢ä¸æçç±ä¸æ
man
æå页计åæä¾ã
䏿 man
æå页计åï¼https://github.com/man-pages-zh/manpages-zh