【发布时间】:2019-05-01 02:07:51
【问题描述】:
我的问题的本质是“用户程序如何在 Mac OS High Sierra 上打开 pty(例如 /dev/ptyp0)?”设备名称的标准 open() 似乎不起作用,即使它的保护是 crw-rw-rw-。
上下文在 Mac OS 下运行 Emacs。在 High Sierra 之前,当我命令 Emacs 创建一个包含子进程的 shell 窗口时,Emacs 分配了一个与子进程通信的 pty。升级到 High Sierra 后,Emacs 无法再分配 pty,并使用管道与子进程通信。这使得子进程的行为不像终端窗口中的 shell,这是一种较差的用户体验。
跟踪 Emacs 的操作表明 Emacs 正在依次尝试打开系统上定义的每个 pty,并且每次都收到 errno 35。
我在网上找到了一项表明在 Mac OS High Sierra 上打开 pty 的方式与以前版本的 Mac OS 不同,但它没有提供详细信息。
【问题讨论】: