CodeBlanks Logo Icon CodeBlanks

Özet - Terminal I/O

  • C kursu
  • İleri seviye
  • Ders 48/83
  • 5 dk

termios ve ANSI'yi birleştirerek bir terminal uygulaması yazarsın.

Terminal I/O özeti

Terminal I/O araç setini öğrendin: termios ile ayar okuma, raw mode ile anlık tuş, non-blocking ile beklemez okuma, ANSI ile renk ve imleç, ioctl ile boyut. Bunlar etkileşimli uygulamaların temelidir.

Bu özette termios, fcntl ve ioctl'i birleştirip bir terminal hazırlık uygulaması yazacağız. Hepsini bir arada kullanmak, gerçek CLI araçlarının nasıl kurulduğunu gösterir. Çıktı deterministiktir: sabit bir hazır mesajı yazdırırız.

Uygulama Terminal hazırla

struct termios t; tcgetattr(STDIN_FILENO, &t); ile ayarları oku. fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK); ile non-blocking moda geç. struct winsize ws; ws.ws_row = 24; ws.ws_col = 80; tanımla ve (void)ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws); ile çağır. printf("terminal hazır\n"); ile yazdır.

Başlangıç kodu

main.c
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>

// terminal ayarlarını oku
// non-blocking moda geç
// boyut yapısını hazırla ve ioctl çağır, hazır yazdır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>

int main(void) {
    struct termios t;
    tcgetattr(STDIN_FILENO, &t);
    fcntl(STDIN_FILENO, F_SETFL, O_NONBLOCK);
    struct winsize ws;
    ws.ws_row = 24;
    ws.ws_col = 80;
    (void)ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws);
    printf("terminal hazır\n");
    return 0;
}

Beklenen çıktı

terminal hazır

Sonraki adımlar

Terminal I/O'yu tamamladın. Bu temeller, metin editörlerinin, kabukların ve TUI uygulamalarının çekirdeğidir. termios + raw mode ile tuş tuş girdi, ANSI ile renkler, ioctl ile boyut alırsın.

Sonraki konular: dinamik yükleme ile eklenti sistemleri ve kriptografi ile güvenlik. Bunlar terminal uygulamalarıyla birleşip güçlü CLI araçları oluşturur.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Renkli çıktı için hangi araç kullanılır?

  • flock
  • fcntl
  • shmget
  • ANSI escape Doğru cevap

Açıklama: ANSI kaçış dizileri renk ve biçim için kullanılır.

2 Terminal araçlarını eşle

Kavram Anlamı
termios Ayar okuma
cfmakeraw Raw mode
O_NONBLOCK Beklemez
ioctl Boyut

İleri seviye bölümündeki tüm dersler