你想调用forkpty().从手册页:
#include <pty.h>/*for openpty和forkpty*/
pid_t forkpty(int*amaster,char*name,struct termios*termp,struct winsize*winp);
与-lutil链接.
forkpty()函数结合了openpty(),fork()和login_tty()来创建在伪终端中运行的新进程.伪终端的主端的文件描述符在amaster中返回,如果从属的文件名不是NULL,则返回其名称.如果不是NULL,则termp和winp参数将确定伪终端的从属侧的终端属性和窗口大小.
您的父进程通过读取和写入forkpty存储在"amaster"中的文件描述符来与子进行通信 - 这称为主伪终端设备.孩子只是与stdin和stdout对话,它们连接到奴隶伪终端设备.
小智 1
您应该使用一个名为“expect”的包。它使用一种称为 tcl(发音为tickle)的脚本语言。
https://core.tcl-lang.org/expect/