首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法写入pty - linux。

无法写入pty - linux。
EN

Stack Overflow用户
提问于 2010-01-13 13:22:26
回答 1查看 2.1K关注 0票数 0

我是pty设备的所有者,就像这个权限是crw-w--

代码语言:javascript
复制
mknod pty1 c 1 1
cat > pty1

告诉我不允许动手术。

稍后我要做的是使用open打开程序中的文件,然后调用write将输出发送到终端,就好像它是磁盘文件一样。

为什么猫不工作。我们可以写到一个pty从pty中读取使用打开和写。

我们能用java做这个吗。java写入实际上是pty的文件。

问题来源:forcing a program to flush its standard output when redirected

更新:这个问题还不清楚。我需要增加更多的信息吗?

ls -la输出

代码语言:javascript
复制
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/pt/0,而在另一个终端中执行cat >/dev/pt/0时,我看不到其中一个被传输到另一个终端的输入。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-13 16:13:14

这不是PTY的工作方式;您应该阅读man 4 ptyman 4 pts。(旧的BSD式设备不应该再使用了。)

为了打开一个伪终端从( PTS,/dev/pts/#ptsname(3)返回),另一个程序必须创建一个伪终端主(PTM,由posix_openpt(3)返回),并使用grantpt(3)unlockpt(3)启用PTS。

使用forkpty(3) etc.助手函数比自己调用低级别函数容易得多。

即使在那之后,它也不像FIFO那样工作(你似乎在期待):写进PTS的任何东西都会出现在PTM上,而从PTS读取的任何东西都是从PTM中写出来的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2056858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档