Denetim Kipleri
Önceki Uçbirim Kipleri Sonraki
Denetim Kipleri
Bu bölümde eşzamansız seri veri iletimi ile ilgili denetim parametreleri olan uçbirim seçenekleri ve alanlarından bahsedilecektir. Bu seçenekler diğer uçbirim port çeşitlerinde etkisiz olabilir (örneğin, bir ağ bağlantısı olarak uçbirimsiler). Bu seçeneklerin hepsi struct termios yapısının c_cflag üyesinin bitleridir.
c_cflag bir tamsayıdır ve bu seçenekleri &, | ve ^ işleçleri ile değiştirebilirsiniz. c_cflag üyesinin değerini toptan değiştirmeyi denemeyin; ilgisiz seçeneklere dokunmadan sadece sizi ilgilendiren seçenekleri değiştirin (bkz. Uçbirim Kiplerinin Doğru Dürüst Belirtilmesi).
tcflag_t CLOCAL
makro
Bu bit varsa, uçbirimin "yerel olarak" bağlı olduğu ve modem durum satırlarının (örneğin, taşıyıcının saptanması) yoksayıldığı anlaşılır. Bu bit yoksa, open işlevini O_NONBLOCK seçeneğinin yokluğunda çağırırsanız, çoğu sistemde open işlevi bir modem bağlantısı sağlanıncaya kadar engellenir.
Bu bit yoksa ve bir modem bağlantısı saptanamazsa, (eğer varsa) uçbirim için denetim süreç grubuna bir SIGHUP sinyali gönderilir. Bir bağlantı kesilmesinden sonraki okuma işlemleri bir dosyasonu durumuna, yazma işlemleri ise bir EIO hatasının dönmesine sebep olur. Bu durumu ortadan kaldırmak için uçbirim aygıtı kapatılıp yeniden açılmalıdır.
tcflag_t HUPCL
makro
Bu bit varsa, açık uçbirim aygıtı olan tüm süreçler çıktığında ya da dosyalarını kapattıklarında bir modem bağlantı kesmesi üretilir.
tcflag_t CREAD
makro
Bu bit varsa, girdi uçbirimden okunabilir. Aksi takdirde, girdi geldiği anda iptal edilir.
tcflag_t CSTOPB
makro
Bu bit varsa, iki durdurma biti kullanılır. Aksi takdirde, sadece bir durdurma biti kullanılır.
tcflag_t PARENB
makro
Bu bit varsa, eşlik bitinin üretimi ve saptanması etkinleştirilir. Girdideki eşlik hatalarının nasıl ele alındığı Girdi Kipleri bölümünde anlatılmıştır.
Bu bit yoksa, çıktı karakterlerinde eşlik biti eklenmez ve girdi karakterlerinde eşlik bitlerinin doğruluğuna bakılmaz.
tcflag_t PARODD
makro
Bu bit sadece PARENB biti varsa anlamlıdır. PARODD biti varsa tek eşlik kullanılır, aksi takdirde çift eşlik kullanılır.
Denetim kipi seçenekleri ayrıca karakter başına bit sayısı için bir alan içerir. Bu değeri çıkarmak için CSIZE makrosunu bir maske olarak kullanabilirsiniz: settings.c_cflag & CSIZE
tcflag_t CSIZE
makro
Karakter başına bit sayısı için bir maskedir.
tcflag_t CS5
makro
Her baytın beş bit olduğunu belirtir.
tcflag_t CS6
makro
Her baytın altı bit olduğunu belirtir.
tcflag_t CS7
makro
Her baytın yedi bit olduğunu belirtir.
tcflag_t CS8
makro
Her baytın sekiz bit olduğunu belirtir.
Aşağıdaki dört bit birer BSD oluşumudur; sadece BSD sistemlerinde ve GNU sisteminde vardır.
tcflag_t CCTS_OFLOW
makro
Bu bit varsa, CTS teline (RS232 protokolü) göre çıktı akış denetimi etkin olur.
tcflag_t CRTS_IFLOW
makro
Bu bit varsa, RTS teline (RS232 protokolü) göre çıktı akış denetimi etkin olur.
tcflag_t MDMBUF
makro
Bu bit varsa, taşıyıcı bazlı çıktı akış denetimi etkin olur.
tcflag_t CIGNORE
makro
Bu bit varsa, denetim kiplerinin ve hat hızı değerlerinin tamamen yoksayıldığı anlamına gelir. Bu sadece bir tcsetattr çağrısı ile anlam kazanır.
cfgetispeed ve cfgetospeed çağrılarından dönen hız değerleri ile c_cflag üyesi çağrı ile etkisiz olacaktır. c_cflag içindeki donanımla ilgili ayrıntılara dokunmadan diğer üyelerdeki yazılımsal kiplerin tamamını değiştirmek isterseniz CIGNORE faydalıdır. (Bu, tcsettattr ile TCSASOFT seçeneğinin atanması ile ilgilidir.)
Bu bit tcgetattr tarafından döndürülen yapıda asla bulunmaz.
Önceki Üst Ana Başlık Sonraki
Çıktı Kipleri Başlangıç Yerel Kipler
Bir Linux Kitaplığı Sayfası