亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
如何初始化TTY完成以下功能的?
[打印本頁]
作者:
jupiters
時(shí)間:
2009-02-18 22:34
標(biāo)題:
如何初始化TTY完成以下功能的?
對于tty的初始化很有疑問,就是啟動(dòng)一個(gè)shell,如何能夠完成超長命令的自動(dòng)換行的?
比如,一個(gè)有100個(gè)字符的命令"aaaaaaaaaaaaaa........aaa",當(dāng)在shell里面敲的時(shí)候,當(dāng)超過terminal顯示的長度的時(shí)候,terminal(比如gnome terminal)好像能夠自動(dòng)將超過一行的換行輸出。但是將terminal大小手工拉長,又回到一行進(jìn)行顯示。
如下例:
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaa
如果把terminal拉長,就變成:
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
這是怎么做的?
有三種可能:
1. gnome terminal中做的。
2. shell對tty初始化的時(shí)候做的。
3. shell本身有cache的功能進(jìn)行顯示。
其中,3不太可能,1也不太可能,那么只有2了。但是shell怎么做的呢?
看了以下shell的源代碼,好像找不到它是在哪里做的。
有誰清楚的,請示下。
作者:
huyongzs
時(shí)間:
2009-02-18 23:16
終端的尺寸改變的時(shí)候會(huì)有相應(yīng)的信號。設(shè)置一個(gè)信號處理函數(shù)就可以了。(我的看法)
也可以判斷終端的邊框位置,自動(dòng)換行。
作者:
jupiters
時(shí)間:
2009-02-19 12:50
那么你覺得是在gnome terminal里面設(shè)置了一個(gè)信號處理函數(shù)?有可能!
每當(dāng)size_request的時(shí)候就去調(diào)整輸出? 去看看gnome terminal的源碼去!
作者:
jupiters
時(shí)間:
2009-02-19 17:55
知道了,是TTY里的"ECHO", 猜測可能是在設(shè)置了ECHO后,每當(dāng)一行超常的命令輸入并且超過了terminal的邊界,這個(gè)ECHO就向TTY的driver發(fā)送一個(gè)信號,再聯(lián)系顯卡的driver告訴顯示換行。
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2