2016-05-25 1 views
0

Dans un processus Unix, je prévois d'écrire du code pour accéder au terminal. Donc, je peux me connecter pour traiter et exécuter quelques commandes.C Code: Pour connecter un terminal pty au processus en cours pour exécuter des commandes

Par exemple, Je peux faire telnet 0: 2000 pour obtenir mon terminal et à partir de là je peux vider mes commandes pour vider les informations de processus. Dans ma recherche, j'ai vu que je pouvais utiliser/dev/pts ou/dev/tty au terminal d'accès pour le processus. L'utilisateur peut se connecter au terminal à ceux-ci, mais pas clair sur la façon dont cela fonctionne.

+1

J'espère sérieusement que vous n'exécutez pas réellement un serveur telnet ... * * s'il vous plaît utilisez 'sshd'. – o11c

Répondre

1

Pour créer une nouvelle pseudoterminal, Tou besoin d'appeler les fonctions suivantes dans l'ordre:

  • posix_openpt (Pour obtenir un nouveau maître)

  • grantpt (Pour fixer les autorisations pour le nouvel esclave)

  • unlockpt (Pour déverrouiller l'esclave)

  • ptsname (Pour obtenir le nom de l'esclave)

  • open (Pour ouvrir l'esclave)

  • setsid (en option, pour entrer dans un nouveau groupe de session et processus - généralement après la fourche lorsque vous utilisez un séparé processus sur l'esclave)

+0

Merci @ o11c, cela va effectivement ouvrir un terminal de modèle xterm mais ce n'est pas ce que je cherche. Je ne veux pas de nouveau xterm ouvert. Quelque chose comme .consider suivante, nous avons procédé en cours d'exécution X .. (et a ouvert le port 2002 pour écouter les connexions telnet $ 0: 2002 -> imprimer cette -> ce -> sortie –

+0

Huh Notez que vous n'avez pas? pour faire quelque chose * graphique * avec un pty, vous pouvez le traiter directement dans un programme – o11c

+0

Oui, je suis d'accord, mais j'ai besoin d'ouvrir à un pty ou tty ou port pour écouter en continu.Mon programme aura deux processus Un autre sera en train de faire son travail ou son exécution. \ R \ n \ r \ nTexte thread/Processus ouvrira à un tty ou le port écoutera continuellement les Commandes utilisateur.Pour Cela Je dois attacher soit au port soit à tout tty/pty. terminal et peut exécuter des commandes –