2011-07-28 58 views
2

我必須創建一個應用程序,它可以在不同的Gnu-Linux/Unix終端中寫入大量的文本。是否有我可以參考的標準或標準寬度?我的意思是喜歡在網頁設計的世界中,他們使用1024像素寬度作爲經驗法則。Gnu-Linux/Unix終端是否有規範或標準寬度?

謝謝你的時間。

回答

4

程序可以從使用與所述請求TIOCGWINSZ代碼ioctl()系統呼叫的終端驅動器的終端的寬度和高度。如果不可用,默認爲80似乎是明智的。

例如:

#include <sys/ioctl.h> 

int get_term_width(void) { 
    struct winsize ws; 
    if (ioctl(1, TIOCGWINSZ, &ws) >= 0) 
    return ws.ws_col; 
    else 
    return 80; 
} 
1

簡而言之,80個字符。

這實際上是一種事實上的標準,因爲實際上是因爲衝卡。

2

80列和24列是舊的VT200標準,保存了很長時間。

今天的圖形顯示器,你不能堅持,但還有其他的方法。 看看ncurses。它是控制檯上定位文本的功能集,無論它是否被重新設置大小等。WeechatIrssi是ncurses的主要用戶。

4

傳統上,80個字符的限制(意思是超過80個字符的行被包裝到下一行)是常態。然而,有關這個標準的相關性的討論(見here)。然而,在我的大學經歷中,我們被教導說,在終端中舒適的觀看是80個字符。如果你使用Linux默認的12pt等寬字體,這意味着一個好的寬度約爲80 *寬度的一個字符。一個更好的解決方案可能是以80個字節的程序簡單地切斷每行。

tldr:80個字符