- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是这样创建的 pty 设备的所有者权限是crw-w----
mknod pty1 c 1 1
cat > pty1
告诉我不允许操作。
我稍后要做的是使用 open 从程序打开文件并调用 write 将输出发送到终端,就好像它是一个磁盘文件一样。
为什么猫不工作。我们可以使用 open and write 来写入 pty 或从 pty 读取吗?
我们可以从 java 中做到这一点吗? java 写入一个实际上是 pty 的文件。
问题来源: forcing a program to flush its standard output when redirected
更新:是不是问题没说清楚。我需要添加更多信息吗?
ls -la 的输出
crw--w---- 1 iamrohitbanga users 1, 1 2010-01-13 18:27 pty1
crw--w---- 1 iamrohitbanga users 1, 2 2010-01-13 18:29 pty2
还有
当我做的时候cat/dev/pts/0 在一个终端和 cat >/dev/pts/0 在另一个终端,我没有看到一个输入被转移到另一个。
最佳答案
PTY 不是这样工作的;你应该阅读 man 4 pty
和 man 4 pts
。 (不应再使用旧的 BSD 风格的设备。)
为了打开一个伪终端slave(PTS,ptsname(3)
返回的/dev/pts/#
),另一个程序必须创建一个伪终端master(PTM,posix_openpt(3)
返回)并使用 grantpt(3)
和 unlockpt(3)
启用 PTS。
使用 forkpty(3)
etc. 辅助函数比自己调用低级函数要容易得多。
即使在那之后,它也不像 FIFO 那样工作(这似乎是您所期望的):写入 PTS 的任何内容都会出现在 PTM 上,而从 PTS 读取的任何内容都是从 PTM 写入的。
关于java - 无法写入 pty - linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2056858/
我正在尝试使用库 node-pty在一个使用 vue-cli 搭建的项目中。当我启动程序时,我收到以下错误: error in ./node_modules/node-pty/build/Releas
我打开了一个 issue in creack/pty for this question ,但实际上我认为它可能属于这里,因为它可能更多地与我对库的使用有关,而不是库有任何问题。 我正在使用 webs
我一直在阅读本页示例中的 ptys:http://www.rkoucha.fr/tech_corner/pty_pdip.html .我有两个问题: 使用 pty 和使用管道之间的区别或最重要的区别是
我正在尝试向 ruby-newt 模块添加一些自动化测试。我的代码似乎可以工作,但仍然需要在终端手动点击 ENTER 才能完成。 例如在下面的代码中,\t会切换到下一个按钮,\r会按下按钮,两个命令都
我试图在代表 PTY 的文件描述符上设置读取超时。我在 termios 中设置了 VMIN = 0 和 VTIME = 10,我希望在字符可用时返回,或者如果没有字符可用则在一秒钟后返回。但是,我的程
我正在编写一个程序来创建 pty,然后 fork 并执行 ssh以 pty 的从属端作为其 stdin 的命令。完整的源代码在这里。 using namespace std; #include #i
我在尝试使用 Node 安装 pty.js 时遇到了一个不寻常的问题: 如果我运行 npm install pty.js 我收到这个错误: > pty.js@0.3.1 install /Use
我一直在用 c++ 编写一个程序,它可以 fork 一个 pty。一切顺利,除了一件事:当 root 运行程序时,pty 以 root 用户身份登录。同样,如果用户“x”运行该程序,则新的 pty 将
我有一个脚本,如果它在 tty 上,它会打印彩色输出。他们中的一堆并行执行,所以我不能把他们的标准输出到 tty。我也无法控制脚本代码(强制着色),所以我想通过 pty 伪造它。我的代码: invoc
我有一个特殊情况,我想伪造一个 tty 到在 ThreadPoolExecutor 中运行的子进程(想想 xargs -p)并捕获输出. 我创建了以下似乎串行运行良好的: import context
我正在编写测试脚本,需要在后台每隔一段时间收集“free -m”输出。但是,watch cmd 发送控制序列以删除旧输出,认为它在终端中。但我不想要那样,我想要贯穿整个过程的值(value)。这可能吗
我正在打开一个 PTY(在 Python/Linux 中)并写入它。我可以通过 minicom 完美地读取它。但是,我无法在另一个 Python(或 C++)程序中读取它。这是一个最小化的示例: pr
我编写了一个嵌入式应用程序(vt52 终端仿真器),在基于 Linux ROM 的系统上运行,没有内置 ptys;和Unix98坏了。但由于我必须有 pty 才能使终端工作...我手动将旧式 BSD
我正在尝试使用 Node 进程来启动交互式 docker session ,然后自动执行一些命令: var spawn = require('pty.js').spawn; var proc = sp
我正在尝试制作一个小模块,它打开 ssh 连接并允许通过 ssh 发送命令并返回命令的输出。因此,应该只有一个 ssh 连接(这样多个命令就不会导致自动阻止)。我知道 paramiko,但我无法使用它
我是这样创建的 pty 设备的所有者权限是crw-w---- mknod pty1 c 1 1 cat > pty1 告诉我不允许操作。 我稍后要做的是使用 open 从程序打开文件并调用 write
这个问题在这里已经有了答案: How to make output of any shell command unbuffered? (5 个答案) 关闭 9 年前。 我正在寻找一种方法来欺骗 Li
当使用 PTY 主/从对控制进程时,我想向相关进程指示 stdin 已关闭并且我没有更多内容要发送,但我仍想接收进程的输出。 要注意的是,我只有一个文件描述符(PTY“master”),它处理来自子进
我正在使用 pty 读取非阻塞进程的标准输出,如下所示: import os import pty import subprocess master, slave = pty.openpty() p
我编写了一个简单的包装器脚本,用于在命令失败时重复命令,称为 retry.py .但是,因为我想查看子命令的输出,所以我不得不使用一些 pty 技巧。这适用于 rsync 等程序,但 scp 等其他程
我是一名优秀的程序员,十分优秀!