getch

すぐendwinを呼んでしまうと、何も起こらないように見える。
getchは、本来、入力された文字を取得する関数だが、これを呼んでキーボード入力がされるまでは入力待ち状態になるので、その間どうなっているかを確認する。

getch(3): char from curses terminal keyboard - Linux man page

initsrcとendwinの間にgetchで待ち状態を作る。

実行前
実行前

実行すると、

待ち状態
待ち状態

画面クリアされ、カーソルが左上にある状態で、待ち状態となる。
vimを始めとするスクリーンエディタっぽくなった。
なんらかのキーを入力されると、

終了
終了

endwinが呼ばれて、プログラムが終了する。

ウィンドウアプリのメッセージループのようなイメージで、ある一定条件でループというか待ち状態を抜けるようにし、それまでは画面制御をしていくという形になる。

Sample/ncurses/getch/getch/src/getch at master · bg1bgst333/Sample · GitHub