最近在看telnet终端登陆的相关程序,了解到了telnet登陆的进程安排。对照UNIX环境高级编程对其中使用伪终端的部分进行了一些学习。
首先,telnet登陆的典型安排如下:
1.telnet client通过connect连接telnet server
2.telnet server 调用accept接受连接请求,并fork子进程1处理与client之间的连接。同时打开伪终端主设备
3.子进程1再fork子进程调用login,同时打开伪终端从设备
4.login处理完验证等处理后,exec登陆shell
5.登陆shell利用伪终端从设备和子进程1之间进行通信
下面是打开伪终端的代码:
ptym_open用于打开伪终端主设备,并通过参数输出对应的伪终端从设备名称
ptys_open用伪终端从设备名打开从设备
grantpt用于更改从设备的节点的权限为用户读写,组写。
unlockpt函数用于准予对伪终端从设备的访问,从而允许应用程序打开该设备。阻止其他进程打开从设备后,建立该设备的应用程序
本文介绍了Linux下telnet登录过程中涉及的伪终端技术。通过详细讲解telnet登录进程安排,以及伪终端主从设备的打开、权限设置和解锁等关键步骤,展示了如何在用户态编程中使用伪终端。示例代码演示了如何实现`ptym_open`和`ptys_open`等函数,以创建并操作伪终端。
订阅专栏 解锁全文
3535

被折叠的 条评论
为什么被折叠?



