ptsname() -- 获得从伪终端名(slave pseudo-terminal)

本文介绍了Linux中的伪终端pts和ptmx,解释了如何通过ptsname()获取从伪终端名,并展示了创建多个从伪终端的示例程序。通过/dev/ptmx可以建立主从伪终端,每个打开都会在/dev/pts/下创建相应文件。运行程序会输出如'/dev/pts/2'、'/dev/pts/3'等从伪终端名。
摘要由CSDN通过智能技术生成

伪终端并不是真正的硬件终端设备,而是一个应用程序。打开一个终端,输入tty 这个命令来查看当前所使用的终端名:

zhang@zhang-laptop:~$ tty
/dev/pts/1

后面的1意味着已经打开了1个终端窗口。实际上,像上面的 /dev/pts/1是从伪终端,它通过文件 /dev/ptmx 建立。/dev/ptmx 可以建立主从伪终端,当打开该文件时,返回的是主伪终端的文件描述符,同时也会在 /dev/pts/ 目录下建立相应的从伪终端文件,如 /dev/pts/1 , /dev/pts/2 等。更多关于主伪终端和从伪终端的信息可使用 man 4 ptmx 进行查阅。

下面这个程序可以打开两个从伪终端:

#define _XOPEN_SOURCE
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <pty.h>

// pty master
#define PTMASTER "/dev/ptmx"

int main()
{

        int amaster, aslave;
        char *slavename;
        int masterfd;

        masterfd = openpty(&amaster, &aslave, NULL, NULL, NULL);
        slavename = ptsname(amaster);
        printf("pts name : %s\n", slavename);

        masterfd 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值