おしながき

ELFファイルフォーマット

  • .eh_frameセクションの構造と読み方

DWARFファイルフォーマット

NCURSESライブラリ

  • NCURSES Programing HOWTO ワタクシ的ほんやく
    1. Tools and Widget Libraries
    2. Just For Fun !!!
    3. References
  • その他、自分メモ
  • NCURSES雑多な自分メモ01


最近の更新 (Recent Changes)

2019-09-24
2013-10-10
2013-10-03
2013-10-01
2013-09-29

NCURSES雑多な自分メモ01

ncurses関係は、なんかきとっとまとまってる本やサイトはなさそう。。。なので、以下気になった点をメモです。


ncursesウィンドウのスクロール

  • スクロールは可能(scrollok関数+wscrl関数、上スクロールも可能)
  • スクロールではみ出した行は、保存されない。
    • つまり、はみ出した行は自力でもう一度上下に書き込まなければならない。


terminalのリサイズ検知

  • getchの戻り値でKEY_RESIZE(410)が戻って来る
  • getmaxyxマクロにstdscrをウィンドウとして指定することで、ウィンドウサイズ取得可能
  • この2点のあわせ技で画面サイズ変更対応可能


getch()関数のタイムアウト

  • wtimeout(stdscr, <msec_timeout_value> ); でいけることが判明。


getch()関数でのCtrl / Alt / Shiftキーの取得

  • 結論からいうと、「一部制限はあるものの、取得可能」っぽい。詳細以下
    • 一般的な文字なキー
      • Shift : アルファベットなら大文字、数字キーならShift時の記号、としてふつーに認識可能
      • Ctrl / Alt : getch()関数から、これらの修飾キーを押さずに返って来る時のキーコードとは別のキーコードとして、きちんと返って来る。
        Ctrl+Altの合わせ技も、きちんと別のキーコードとして取れた。
        • 但し、全部の文字キーで取れるわけではないっぽい。(ただ、ざっとやってみた感じ、取れないキーの方が極わずか)
      • Shift + Ctrlな合わせ技は、一切取得不可。(全部Shiftとして取れてしまった。。。)
    • 文字じゃないキー(Enter/Backspace/矢印etc)
      • /usr/src/contrib/ncurses/include/caps.keyなファイル内で定義されている、KEY_C_BACKSPACEなどのマクロのキーコードとして取れるっぽい。
      • 取得できない組合せもあるよーだ。(Ctrl+Enterとか)