程序与exec一起运行时没有颜色输出

时间:2015-03-08 00:04:23

标签: c linux stdout

我有一个运行的C程序

execvp("grep", args);

其中args是一个数组{"grep", "test"}(测试是我想要grep查找的单词)。 问题是grep的输出没有着色。在普通的bash shell中,grep以红色突出显示test,但在我的程序输出中,它只是打印出像 this is a test没有任何突出显示或颜色。

我也使用execvp执行一些其他命令,这些命令也会在bash shell中生成彩色输出,并且在输出中没有颜色。

有什么方法可以解决这个问题吗?我需要对stdout做些什么?

1 个答案:

答案 0 :(得分:2)

您需要为grep提供正确的选项才能让它着色。最有可能的是,您的shell环境包括:

alias grep='grep --color=auto'

execvp对别名一无所知。

所以创建args数组:{"grep", "--color=auto", "test", 0}并在execvp("grep", args);调用中使用它。