Abh*_*yal 4 c++ linux terminal
我试图为一些必须使用 ansi 转义代码在终端中显示的字符串添加颜色。到目前为止,我还没有掌握整个 ascii 转义代码的事情,只是通过复制粘贴一些转义代码来尝试。然后看到这个答案,要求验证程序应该检查它是否在终端中执行,否则继续而不用转义码污染字符串?
答案解释了使用基于 *nix 的函数isatty(),我发现该函数驻留在其中,根据我的理解,它并不是由 cpp 标准unistd.h提升到的。我尝试再次搜索SO,但没有不太能理解。现在我对此有两个问题:cunistd
unistd.h?这会限制现代 cpp 实践吗?在处理 ansi/颜色相关的事情之前,还有什么我应该阅读/理解的吗?
在 POSIX 系统(如 Linux 或 OSX)上,该isatty函数确实是确定是否输出到终端的正确函数。
像这样使用它
if (isatty(STDOUT_FILENO))
{
// Output using VT100 control codes
}
else
{
// Output is not a TTY, could be a pipe or redirected to a file
// Use normal output without control codes
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
241 次 |
| 最近记录: |