小编sfa*_*ost的帖子

在c ++ Linux中调用"system"时隐藏sh:-c错误消息

我正在使用系统来执行带有它的参数的命令.我不想使用exec/fork.当我在命令中有不匹配的引号时,会出现以下错误:

sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

如何抑制这些shell的错误消息?我尝试>/dev/null 2>&1在无效命令的末尾添加,但它不会抑制shell错误消息.对于后台,我正在运行用户提供的命令,这些命令可能有效也可能无效.我不能事先知道它们是否有效,但我想要压制错误消息.

这是一个生成我试图压制的错误类型的代码示例:

int main()
{
   // This command is meant to be invalid as I'm trying to suppress the shell syntax error message
   system("date ' >/dev/null 2>&1");
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?

c++ linux bash

2
推荐指数
1
解决办法
1381
查看次数

标签 统计

bash ×1

c++ ×1

linux ×1