创建用于进程间通信的终端设备

sj7*_*755 5 linux terminal tty devices ipc

我想知道如何创建一个终端设备来模拟通过串口连接的一块硬件。基本上,具有特定波特率的 tty 设备可以在两个进程之间读取和写入。据我所知,我正在寻找一个伪终端,并且makedev显然可以制造一个。

我还发现了以下一组说明:

su to root
cd /dev
mkdir pty
mknod pty/m0 c 2 0
mknod pty/s0 c 3 0
ln -s pty/m0 ttyp0
ln -s pty/s0 ptyp0
chmod a+w pty/m0 pty/s0
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来制作伪终端,或者这几乎是在 shell 中制作一个的标准方法?

小智 4

这可能就是创建 pty 设备文件的方式,但您不想在需要 pty 时就这样做。任何给定的机器通常都有已创建的 pty 设备文件的补充。

伪 TTY 是相当特定于操作系统的,并且您没有提及要在什么上执行此操作。对于现代 Linux,我会看一下openpty(3). 您可以在 OpenSSH 源代码sshpty.c中找到工作示例代码。您可能必须找到调用才能pty_allocate()完全理解的代码。