开发者

cannot write to pty - linux

i am the owner of the pty device created like this permissions are crw-w----

mknod pty1 c 1 1
cat > pty1

tells me operation not permitted.

what i want to do later is that i open the file from a program using open and call write to send output to the terminal, as if it is a disk file.

why is cat not working. can we write to a pty or read from a pty using open and write.

can we do this from java. java writes to a file that is actually a pty.

source of problem: forcing a program to flush its standard output when redirected

Update: is th开发者_运维知识库e question not clear. do i need to add more info?

output of 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

also

when i do cat /dev/pts/0 in one terminal and cat > /dev/pts/0 in another, i do not see the input of one getting transferred to another.


That's not how PTYs work; you should read man 4 pty and man 4 pts. (The old BSD-style devices should no longer be used.)

In order to open a pseudo-terminal slave (PTS, the /dev/pts/# returned by ptsname(3)), another program must create a pseudo-terminal master (PTM, returned by posix_openpt(3)) and enable the PTS with grantpt(3) and unlockpt(3).

Using the forkpty(3) etc. helper functions is a lot easier than calling the low-level functions yourself.

And even after that, it doesn't work like a FIFO (which you seem to be expecting): anything written into the PTS comes out on the PTM, and anything read from the PTS is written from the PTM.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜