2016-01-08 32 views
7

Soru: Bir Pty veya tty Master/Slave çift varsa sadece köle varsa

, ben onunla ne değildirolabilir düğümün dosya tanıtıcısı? Veya başka bir yol belirtin: sadece ana düğümün dosya tanıtıcısına sahip olabilir miyim? PTY/TTY - Sadece Slave FD ile NELERİ YAPAMAZ

Benim Güncel Anlama:

[değiştir] hiç bir insanla arabirim için ana ucuna sahip bir terminal/konsol/SSH "tipik" bir ilişki grok

ve bir veya daha fazla program (örn bir kabuk ve onun çocukları süreçleri) köle sonunda olmak. Ve ben (gevşek) daha fazla sıra dışı (/ arkaik?) Yararları, PPP gibi başka türdeki veri bağlantıları için bir TTY kullanmak gibi. Bu soru, numaralı numaralı "Bu TTY işini almadım" sorusudur. ("Düşük düzey"?) "API" öğelerini istiyorum: ör. Master FD'ye erişiminiz yoksa, tty paritesinde herhangi bir termos/ioctl manipülasyonu veya diğer programatik değişiklikler var mı?

[/ değiştir]

ben belirgin olanları tahmin: Ben usta end en FD varsa

  • Ben yalnızca ana ucundan okuma/yazma edebilirsiniz.
  • hibe/unlockpt/ptsname yalnızca ana uçun FD'sinde kullanılabilir.

Başka bir şey var mı?

Bazı adam sayfalarını okumak ve Linux makinelerimi denemekle uğraştım/devre dışı bıraktım: Bir pty ile (örneğin, stty columns 78, vb.) Yapmak isteyecek temel şeyler "her iki ucunda" çalışıyor gibi görünüyor. Ama ben sadece bir şey bilirim ki, sadece bir master tanımının dosya tanımlayıcısını tutan bir süreç vardır (özellikle master-slave adı ikilemi tek taraflı kontrol/hakimiyet önermektedir). Ve tabii ki sadece Linux üzerinde test ettiğim için, Linux'un çeşitli sürümleri/yapılandırmaları ile Unix'lerin arasındaki olası davranış farklılıkları var, bu yüzden gördüğüm şeyin taşınabilir olduğunu varsaymak istemiyorum.

Motivasyon

  1. Genel bilgi/merakı (durumda birileri bilmek istiyorum neden bilmek istiyor).
  2. Ptys ile çalışmak için mevcut komut satırı araçlarının seçimine aşık değilim. detaya girmeden, G/emptyexpect,/tmuxscreen (/ neercs? reptyr benzeri özelliği ile bir), dtach/abduco ve bunların hiçbiri minimalist yönlülük benim Sweetspot vurmak, reptyr, ptyget baktım. Daha bilinçli olmaya çalışıyorum, böylece mevcut çözümleri daha iyi değerlendirebilirim ve/veya kendi kaşıntılarımı çizmek için kendi araçlarımı daha iyi tasarlayabilirim.
+0

Her iki uca da yazabilir/yazabilir ve farklı şeyler yapabilirsiniz. Slave işletim sisteminin terminal aygıtıdır, master ise tuşa basma ve program çıkışı alma şeklinizdir. –

+0

@thatotherguy Evet, teşekkürler: Yorumunuz, soru (ve mevcut anlayış) bölümlerinin belirsiz olduğunu ortaya çıkardı. Ana bölümden "okuma/yazma" demek istediğim, doğal olarak yalnızca ana düğümün FD'si varsa ve genel olarak ne istediğimi açıklığa kavuşturmak için yapabileceğim şeylerden biri olduğunu açıklığa kavuşturmak için yazıyı düzenledim. – mtraceur

+0

* master-slave adı dikotomi, bazı tek taraflı kontrol/hakimiyeti öneriyor *, diyor. Dikotomisi ağ bağlantısında neredeyse aynıdır: Başlangıçta simetrik değildir, ancak bağlantı kurulduğunda her şey simetriktir. master/slave bilgisayar ve terminal öykünmesi arasında bir iletişim hattı öykünür. Master, bağlantıyı başlatan/kapatmanın (bağlantıyı mastering etmenin) ana tarafın (normalde) olduğu anlamına gelir. Küçük asimetrik şeyler olabilir ama kendi cevabınızda bahsettiğiniz kadar zor olabilir (bir terimi yeniden boyutlandırmak modern bir hile - GUI'lerdir). –

cevap

2

StackOverflow'un konuyla ilgili soru önerileri ve diğer çevrimiçi arama sayesinde bunu sorduğum için, bir (kısmi) buldum.) Cevap: Eğer FD [See TIOCPKT at this manpage] Linux bir TTY ile ilişkili Oturum kimliği alınıyor

  • yalnızca yapılabilir ustası varsa

    • etkinleştirilmesi ya da Linux'ta bir PTY üzerinde paket modunu devre dışı bırakmayı yalnızca yapılabilir Ana FD'niz var (bu beklenen/amaçlanan bir davranış olup olmadığı belli değil) [See TIOCGSID at this manpage]
    • TTY'nin yeniden boyutlandırılması pratikte yalnızca ana FD'den taşınabilir (bir terminal öykünücüsü yeniden boyutlandırıldığında TTY'yi yeniden boyutlandırabilir, ancak bir uygulama sadece slave FD ile ana boyutun buna göre yeniden boyutlandırıldığı veya terminal sürücüsünün köle sonundan yeniden boyutlandırma kabul edeceği konusunda kesin bir kesinlik yoktur). [Source]
    • Bir TTY'nin bağımlı ucunun açıldığını, ana FD'niz yoksa yapamayacağınızı söyleyen bir hile vardır. [Source]

    Ben muhtemelen ben kendi cevap etraflıca bu soruya cevap için yeterli öğrenmek, ama bu kadar fazla bilgi olarak bu düzenlemeye geri gelmesini çalışacağım sürece kendi cevabı kabul olmaz ya da başka bir cevap onu yeterince cevaplandırır.