Hat Denetim İşlevleri
Önceki XVII. Oylum - Düşük Seviyeli Uçbirim Arayüzü Sonraki
Hat Denetim İşlevleri
Bu işlevleri uçbirim aygıtı üzerinde çeşitli denetim eylemlerini gerçekleştirir. Uçbirim erişimi ile ilgili olarak, bunlar çıktıda şöyle birşeyler yapıyor gibi ele alınır: Bir artalan süreci kendi denetim uçbirimi üzerinde bu işlevlerden birini kullandığında, normalde süreç grubundaki tüm süreçler bir SIGTTOU sinyali gönderir. Çağıran süreç SIGTTOU sinyallerini engelliyor ya da yoksayıyorsa, bu durumda işlem yine yapılır ama sinyal gönderilmez. Bkz. İş Denetimi.
int tcsendbreak
(int dosyatanıtıcı,
 int süre)
işlev
Bu işlev, dosyatanıtıcı dosya tanıtıcısı ile ilişkili uçbirim üzerinde sıfır bitlerinden oluşan bir akımı ileterek bir geçici kesme durumu (break condition) oluşturur. Geçici kesme durumunu süresi süre argümanınca denetlenir. Sıfırsa süre 0.25 ile 0.5 saniye arasında olur. Bu, sıfırdan farklı değerlerin sisteme bağlı olduğu anlamına gelir.
Bu işlev, eğer uçbirim bir eşzamasız seri veri portu değilse hiçbir şey yapmaz.
Normalde dönüş değeri sıfırdır. Bir hata oluştuğunda -1 döner. Aşağıdaki errno hata durumları bu işlev için tanımlanmıştır:
EBADF
dosyatanıtıcı geçerli bir dosya tanıtıcı değil
ENOTTY
dosyatanıtıcı bir uçbirimle ilişkili değil
int tcdrain
(int dosyatanıtıcı)
işlev
tcdrain işlevi kuyruktaki çıktı dosyatanıtıcı uçbirimine iletilinceye kadar bekler.
Bu işlev çok evreli yazılımlarda bir iptal noktasıdır. tcdrain çağrısı sırasında evre bazı özkaynakları (bellek, dosya tanıtıcı, semafor, vb.) ayırdığında bu bir sorun olur. Evre tam bu anda bir iptal alırsa ayrılan özkaynaklar yazılım sonlanana kadar ayrılmış olarak kalır. Bu tür tcdrain çağrılarından kaçınmak için iptal eylemcileri kullanılarak korunulmalıdır.
Normalde dönüş değeri sıfırdır. Bir hata oluştuğunda -1 döner. Aşağıdaki errno hata durumları bu işlev için tanımlanmıştır:
EBADF
dosyatanıtıcı geçerli bir dosya tanıtıcı değil
ENOTTY
dosyatanıtıcı bir uçbirimle ilişkili değil
EINTR
İşlem bir sinyalle durduruldu. Bkz. Sinyallerle Kesilen İlkeller.
int tcflush
(int dosyatanıtıcı,
 int kuyruk)
işlev
tcflush işlevi dosyatanıtıcı dosya tanıtıcısı ile ilişkili uçbirimin girdi ya da çıktı kuyruğundaki veriyi temizlemek için kullanılır. kuyruk argümanı temizlenecek kuyruğu belirtmek için kullanılır ve şu değerlerden biri olabilir:
TCIFLUSH
Alınmış ama henüz okunmamış veri temizlenir.
TCOFLUSH
Yazılmış ama henüz iletilmemiş veri temizlenir.
TCIOFLUSH
Girdi ve çıktı kuyruklarının ikisi de temizlenir.
Normalde dönüş değeri sıfırdır. Bir hata oluştuğunda -1 döner. Aşağıdaki errno hata durumları bu işlev için tanımlanmıştır:
EBADF
dosyatanıtıcı geçerli bir dosya tanıtıcı değil
ENOTTY
dosyatanıtıcı bir uçbirimle ilişkili değil
EINVAL
kuyruk argümanı olarak belirtilen değer geçersiz
Bu işlevin ismine bakarak hatırlamak zor olacaktır, çünkü "flush" (boşaltma) işlemi normalde önceki işlev için kullanılır ve girdi ve çıktının iptal edimesi ile çelişir. tcflush işlevi POSIX standardında belirtildiğinden maalesef ismini değiştiremiyoruz.
int tcflow
(int dosyatanıtıcı,
 int eylem)
işlev
tcflow işlevi dosyatanıtıcı dosya tanıtıcısı ile ilişkili uçbirim üzerinde XON/XOFF akış denetimi ile ilgili işlemleri gerçekleştirmekte kullanılır.
eylem argümanı gerçekleştirilecek eylemi belirtmek için kullanılır ve aşağıdaki değerlerden biri olabilir:
TCOOFF
Çıktı iletimi beklemeye alınır.
TCOON
Çıktı iletimi yeniden başlatılır.
TCIOFF
STOP karakteri iletilir.
TCION
START karakteri iletilir.
STOP ve START karakterleri hakkında daha ayrıntılı bilgiyi Özel Karakterler bölümünde bulabilirsiniz.
Normalde dönüş değeri sıfırdır. Bir hata oluştuğunda -1 döner. Aşağıdaki errno hata durumları bu işlev için tanımlanmıştır:
EBADF
dosyatanıtıcı geçerli bir dosya tanıtıcı değil
ENOTTY
dosyatanıtıcı bir uçbirimle ilişkili değil
EINVAL
eylem argümanı ile belirtilen değer geçersiz
Önceki Üst Ana Başlık Sonraki
BSD Uçbirim Kipleri Başlangıç Kuralsız Kip Örneği
Bir Linux Kitaplığı Sayfası