我想从我的 C++ 代码中调用带有标志的 rpm 命令并获取输出,但我不想在该过程中使用 shell。
我考虑使用 popen,但看到它使用 shell 来执行我不想要的命令。我可以使用 pipeline\fork\exec long 方法,但我想逐行读取,并且不确定如何使用它,所以我考虑使用 popen() 代替,如果可以在没有中间 shell 的情况下执行它。
我的问题是是否有一种方法可以使用 popen() 而不调用 shell,而只需调用带有其标志的二进制文件(例如 /usr/bin/rpm -qa)?或者我将不得不走很长的路?