在一个终端中,我可以通过运行清除另一个终端:
echo -e "\033\0143" > /dev/pts/14
但是,如果我通过以下操作从我的 C 程序中尝试这样做:
system("echo -e '\033\0143' > /dev/pts/14");
它不会清除屏幕并留下一些垃圾。关于如何执行此操作的任何想法?
我已经使用 C 语言编程 30 年了,我认为这很容易。
最佳答案
\0143
转义由 C 解释,而不是 shell 或 echo
,它被视为具有 \014
然后数字 3
。这最终会将字节 1b 0c 33 0a
写入 tty,而不是 1b 63 0a
。 -e
此时根本没有做任何事情。
不过,我不明白您为什么要这样做而不是打开 tty 文件并直接使用 write(3)
写入字节。无论如何,这确实是一道编程题。
关于terminal - 我怎样才能从 C 中清除另一个 tty?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24949301/