terminal - 我怎样才能从 C 中清除另一个 tty?

标签 terminal c

在一个终端中,我可以通过运行清除另一个终端:

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/

相关文章:

c# - 如何在 C CLI 中从数组 <unsigned short> 复制到 unsigned short[]?

linux - 如何以 dasusr 身份登录?

c - 如何设置C盘

macos - 带有 zsh 的 Mac 上 IntelliJ 终端中的 "Home"和 "End"

macos - Leopard 终端(和 iTerm)忽略控制组合键

C - 读取 2d int 数组,行以 0 结尾,直到输入结束

c - 在多线程程序中选择互斥锁定和解锁位置的策略

检查C中输入是否为浮点型?

xcode - Xcrun PackageApplication,无法复制应用程序失败

JPanel 中的 Java Linux 终端