当前,我使用的是低级os.write
,os.read
函数,用于从文件描述符读取内容或将内容写入文件描述符。
os.write(fd, b'echo hi')
os.write(fd, b' && echo foo')
现在已成功写入fd,我想从fd
中删除最后两个字节。但是我不知道该如何实现。似乎os.read(fd, 2)
不能正常工作。它是否从fd中删除了最后2个字节?
(child_pid, fd) = pty.fork()
实际上我从fd
那里获得了pty.fork()
,这创建了一个子进程。
实际上,我从用户那里获取输入并写入pty,并且我不希望用户写\ q [enter],因此当用户输入“ enter btn”时,我必须检查是否最后2个已经写入fd
的字节不是\\
和q
,如果是这样,那么我必须从fd中删除最后2个字节。
还有其他方法可以实现这种行为吗?
部分地,我可以通过使用最大长度设置为collections.deque
的{{1}}来实现此行为。
因此,在将字节或字符写入2
之前,我必须将字符附加到已定义的fd
中。在将char(queue
)写入fd之前,我将检查队列的第0位和第1位不是\r
和\\
。如果是,那么我只是放弃回车以写入q
,但要注意fd
已经写入\q
。