2016-05-25 20 views
0

In einem Unix-Prozess, ich plane, Code für den Zugriff auf Terminal zu schreiben. So kann ich mich anmelden, um einige Befehle zu verarbeiten und auszuführen.C-Code: Um ein Pty-Terminal mit dem aktuellen Prozess zu verbinden, um Befehle auszuführen

Zum Beispiel Ich kann Telnet 0: 2000 tun, um mein Terminal zu bekommen, und von dort kann ich meine Befehle ausgeben, um Prozessinformationen auszugeben.

Bei meinen Nachforschungen habe ich gesehen, dass ich/dev/pts oder/dev/tty für den Zugriffsterminal für den Prozess verwenden kann. Benutzer können sich am Terminal anmelden, aber nicht wissen, wie es funktioniert.

+1

Ich hoffe ernsthaft, dass Sie nicht tatsächlich einen Telnet-Server laufen ... * bitte * verwenden 'sshd'. – o11c

Antwort

1

eine neue Pseudoterminal erstellen, tou müssen die folgenden Funktionen aufrufen, um:

  • posix_openpt (Um einen neuen Master zu bekommen)

  • grantpt (um Berechtigungen für den neuen Slave fix)

  • unlockpt (Slave zum entsperren)

  • ptsname

  • open (Zum Öffnen des Slave)

  • setsid (optional (Um den Namen des Slave zu bekommen), eine neue Sitzung und Prozessgruppe eingeben - in der Regel nach der Gabel, wenn Sie ein separaten laufen Prozess auf dem Slave)

+0

Danke @ o11c, das wird tatsächlich ein Xterm-Modell Terminal öffnen, aber das ist nicht das, was ich suche. Ich möchte kein neues xterm öffnen. So etwas wie folgt .consider haben wir X laufenden Prozess .. (und öffnete 2002 Port-Verbindungen zu hören telnet $ 0: 2002 -> drucken -> diese -> Ausfahrt –

+0

Huh Beachten Sie, dass Sie nicht haben? um alles zu tun * grafisch * mit einem pty, können Sie es einfach direkt in einem Programm verarbeiten – o11c

+0

Ja, ich stimme zu, aber ich muss an einem Pty oder Tty oder Port öffnen, um kontinuierlich zu hören.So, Mein Programm wird zwei Prozess haben Man wird seine Arbeit oder Ausführung machen. Anderes thread/Process wird ein at ty ty öffnen oder Port hört fortwährend auf Benutzerkommandos. Für This muss ich mich entweder an Port oder irgendeinem tty/pty anschließen. So kann Benutzer darauf zugreifen Terminal und kann Befehle ausführen. –