POSIX sistemleri iki temel girdi kipini destekler: kurallı ve kuralsız.
Kurallı girdi işleme kipinde girdi, satırsonu (
'\n'), EOF veya EOL karakterleri ile sonlandırılmış satırlar halinde işlenir. Kullanıcı tarafından satırın tamamı yazılana kadar hiçbir girdi okunmaz. Girdi alındıktan sonra, kaç bayt istendiğine bakılmaksızın
read (
Girdi ve Çıktı İlkelleri) işlevi tek satırlık bir girdi ile döner.
Kurallı girdi kipinde, girdi düzenleme oluşumlarını işletim sistemi sağlar: o anki metin satırı içindeki bazı karakterler metin düzenleme işlemlerini gerçekleştiren ERASE ve KILL gibi özel karakterler olarak yorumlanır. Bkz.
Girdi Düzenleme Karakterleri.
_POSIX_MAX_CANON ve
MAX_CANON sabitleri, kurallı kipte tek bir satırda bulunabilecek karakterlerin sayısının üst sınırını belirleyen parametrelerdir. Bkz.
Dosya Sistemi Kapasite Sınırları. Satır uzunluğunun en azından
MAX_INPUT karakterlik olacağını düşünebilirsiniz, ancak satır daha uzun olabilir ve hatta uzunluğu özdevimli olarak değişebilir.
Kuralsız girdi işleme kipinde karakterler satırlar halinde gruplanmaz ve ERASE veya KILL gibi metin düzenleme karakterleri dikkate alınmaz. Girdinin baytlar halinde okunduğu kuralsız girdi kipi MIN ve TIME ayarları ile denetlenir. Bkz.
Kuralsız Girdi.
Çoğu uygulama kurallı girdi kipini kullanır, çünkü bu kip kullanıcıya metni satır satır düzenleyebilme imkanı verir. Uygulama tek karakterlik komutlar kabul edecekse ve kendi metin düzenleme oluşumları olacaksa kuralsız kip tercih edilir.
Kurallı ve kuralsız girdi seçimi
struct termios yapısının
c_lflag üyesinde
ICANON seçeneğinin kullanılmasına bağlıdır. Bkz.
Yerel Kipler.