ncurses kütüphanesini kullanmak için curses.h başlık dosyasını kodunuza eklemeli ve kodunuzu gcc ile derlerken -lcurses seçeneğini kullanmayı unutmamalısınız.
ncurses konusuna girerken kütüphane için temel bir veri yapısından bahsetmek gerekir. WINDOW * türünde olan bu yapı, adından da anlaşıldığı gibi, ncurses ile oluşturacağınız pencereleri temsil etmek için kullanılır. Hemen hemen tüm ncurses işlevleri WINDOW * türünden bir akımı parametre olarak alırlar.
Pencereler, ncurses'da en çok kullanılan bileşenlerdir. Siz hiçbir pencere oluşturmasanız bile ekran tek başına bir pencere olarak kabul edilir. Standart giriş/çıkış kütüphanesinde (yönlendirmeler olmadığı sürece) çıktı ekranını FILE * türünde stdout adlı akımın temsil etmesi gibi ncurses'da da ekran WINDOW * türünde stdscr adlı bir akım ile temsil edilir. stdscr akımına ek olarak, kütüphane tarafından curscr adlı bir başka WINDOW * türünde akım daha tanımlanır. stdscr öntanımlı çıktı ekranı temsil ettiği halde, curscr o anki çıktı ekran görüntüsünü temsil eder. "İkisinin arasında ne fark var ki?" diye düşünüyor olabilirsiniz, okumaya devam edin.
Yazılımınızda ncurses işlevlerini ve değişkenlerini kullanabilmek için herşeyden önce initscr işlevini çağırmanız gerekir. Bu işlev stdscr ve curscr akımlarını ilklendirir (bellek ayırır) ve kütüphaneyi hazır hale getirir. Dolayısıyla her ncurses işlevi initscr işlevini takip etmek zorundadır. Benzer şekilde ncurses ile işinizi bitirdiğinizde endwin işlevini kullanarak kütüphanenin oluşturduğu akımların yokedilmesini sağlayabilirsiniz. Bunu yaptıktan sonra yeniden initscr çağrısı yapmadığınız sürece ncurses işlevlerini kullanamazsınız.
Yazılımınızda initscr ve endwin çağrıları arasında standart C kütüphanesinin giriş/çıkış işlevlerini kullanarak ekrana çıktı göndermemelisiniz. Bu durumda beklediğiniz görüntüyü elde edemeyebilirsiniz. ncurses kütüphanesi etkin olduğu sürece ekran çıktısı için sadece onun işlevlerini kullanmaya dikkat edin. initscr çağırmadan önce ya da endwin çağırdıktan sonra istediğinizi yapabilirsiniz.
Ncurses Nedir? Başlangıç Ekran Görüntüsünün Tazelenmesi