在 c++ 中执行 Linux shell 命令,同时隐藏其输出

Execute Linux shell command in c++ while hiding its output

本文关键字:隐藏 输出 命令 c++ 执行 Linux shell      更新时间:2023-10-16

我想使用 execl 或 system(或其他命令)从"/sbin/"执行 Linux shell 命令,并隐藏其输出。

我已经在使用"叉子"来获取子进程......

就像我进入...

service "servicename" restart

我会看到输出显示"重新启动 xyz [正常]"。相反,我只希望以静默方式执行命令并丢弃其输出,而不是显示在我的控制台应用程序中。

您可以将它附加到您的命令中:">/dev/null 2>&1 "

因此,您的命令将变为:service [servicename] restart>/dev/null 2>&1

这样做的作用是它将stderr重定向到stdout(2>&1),并将stdout重定向到/dev/null(>/dev/null)。

将输出重定向到/dev/null

例如,

service smb restart 1> /dev/null

service smb restart 2> /dev/null

其中12表示stdoutstderr