将变量传递给popen命令

Jam*_*Joy 3 c linux terminal openssl popen

我需要将字符串变量传递给我为解密一段加密数据而执行的popen命令。我需要使用的代码段是:

char a[]="Encrypted data";
popen("openssl aes-256-cbc -d -a -salt <a-which is the data i have to pass here>","r");
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能将此变量传递到命令中。我尝试过:

popen("openssl aes-256-cbc -d -a -salt %s",a,"r");
Run Code Online (Sandbox Code Playgroud)

但是在编译时显示的错误表明popen传递了太多参数。请帮忙。提前致谢。操作平台:Linux

MBy*_*ByD 5

使用snprintf构建字符串传递popen方法的命令。

FILE * proc;
char command[70];
char a[]="Encrypted data";
int len;
len = snprintf(command, sizeof(command), "openssl aes-256-cbc -d -a -salt %s",a);
if (if len <= sizeof(command))
{
    proc = popen(command, "r");
}
else
{
    // command buffer too short
}
Run Code Online (Sandbox Code Playgroud)