gpt4 book ai didi

java - 无法写入 pty - linux

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:02:23 25 4
gpt4 key购买 nike

我是这样创建的 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 ptyman 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com