1. 程式人生 > >Unix-Linx 程式設計實踐教程 第六章 小結

Unix-Linx 程式設計實踐教程 第六章 小結

  • 終端模式有三種,規範模式、非規範模式、raw模式。
    1. 規範模式:又名cooked模式,是最常見的模式。擁有緩衝區特性(僅在接收到回車鍵時才將輸入傳送到程式),使得驅動程式可以實現基本的編輯功能。可通過命令stty或tcsetattr()修改。
    2. 非規範模式:沒有緩衝特性和可編輯特性,但仍具有特定的字元處理,比如處理Ctrl-C。
    3. raw模式:當所有的處理設定都被關閉時,驅動程式處於raw模式。
  • struct termios.c_lflag部分屬性位
    ICANON---標準模式屬性位
    ISIG---當輸入INTR、QUIT、SUSP或DSUSP時,產生相應的訊號
    ECHO---回顯屬性位

     

  • struct termios.c_cc[VMIN] = 1; //設定每次只讀一個字元
    struct termios.c_cc[VTIME]=20; //設定驅動程式的超時為2s

     

  • 終端驅動程式預設行緩衝輸出,所以cout<<endl同fflush(stdout)作用一樣,都是讓緩衝內容迅速輸出。

  • signal()用於安裝訊號處理函式

  • 針對SIGINT(Ctrl-C)安裝處理函式,如果SIGINT傳送太多次的話,僅僅有兩個SIGINT會被真正傳送到訊號佇列中