C++函数系统(命令)的输出在Linux终端中不显示颜色

Lar*_*rry 3 c++ linux terminal stdout

当我在我的Linux终端中直接运行命令时,说"ls",输出是带颜色的.但是,当我运行一个调用system("ls")的C++程序时,输出没有颜色.

有没有办法让后一种方式也显示彩色输出?

谢谢!

小智 5

这里没有颜色的答案就在于此.

system()通过调用/ bin/sh -c命令执行命令中指定的命令,并在命令完成后返回.

sh -c忽略别名.也许在某个地方你有别名的ls意思ls --color=auto.

所以,例如,如果我这样做sh -c 'ls',我将没有颜色.

证明:

wow ?[01:04 AM][vnbraun@chernobyl ~]$ which ls
alias ls='ls --color=auto'
        /bin/ls
wow ?[01:08 AM][vnbraun@chernobyl ~]$ sh -c 'which ls'
/bin/ls
Run Code Online (Sandbox Code Playgroud)

因此,你可以尝试做system("ls --color=auto");.