Curses Kipini Geçici Olarak Terk Etmek

Bazen ilk işlemleri gerçekleştirdiğiniz kipe (satır tamponlu kip) geçici bir süre için geri dönmek isteyebilirsiniz. Böylesi bir durumda ilk olarak tty kiplerini def_prog_mode() çağrısı ile kaydetmeniz ve curses kipini sonlandırmak için endwin() işlevini kullanmanız gerekmektedir. Bu sizi asıl tty kipine gönderecektir. İşiniz bitip tty kipine dönmek için reset_prog_mode() işlevini çağırın. Bu işlev tty kipini def_prog_mode() ile kaydedilmiş kipe dönüştürür. Daha sonra refresh()'i kullanın ve işte yine curses kipindesiniz. Aşağıda yapılan işlemlerin sırasını gösteren bir örnek bulunmaktadır.

Örnek 5.17. Geçici Olarak Curses Kipini Terk Etmek

#include <ncurses.h>

int main()
{
  initscr();                        /* Curses kipi başlangıcı */
  printw("Merhaba Dünya !!!\n");    /* Ekrana Merhaba Dünya yaz */
  refresh();                        /* Gerçek ekranda bunu yaz */
  def_prog_mode();                  /* tty kiplerini kaydet */
  endwin();                         /* Curses kipini geçici olarak sonlandır */
  system("/bin/sh");                /* Kabukta ne yapmak istiyorsanız yapın */
  reset_prog_mode();                /* Bir önceki tty kipine dönüş */
  refresh();                        /* Ekran içeriğini geri yükleyelim */
  printw("Tekrar Merhaba\n");       /* Curses'a döndük mü bakalım */
  refresh();                        /* Ekranı tampondan tazeleyelim */
  endwin();                         /* Curses kipinin sonu */

  return 0;
}