我有这个代码可以工作(它有点剥离):
char *parmList[6];
parmList[0] ="/root/ssl_send";
parmList[1] ="-m 1";
...etc...
parmList[5] = NULL;
execvp(parmList[0], parmList);
现在我想用sprintf在这个列表中用一个字符串写一些东西(更确切地说,我希望* parmList [6]的一个指针指向一个用sprintf构造的char数组)。我一直在收到“分段错误”。 我试过了:
我显然做错了什么。问题是Sprintf Segmentation Fault类似,只是我需要有一个execvp的指针/ char_arrays列表。
答案 0 :(得分:1)
以下是使用sprintf创建字符串并在参数列表中使用该字符串的代码。确保为sprintf输出分配足够的空间。
char *parmList[6];
parmList[0] = "/bin/ls";
char arg1[10];
sprintf(arg1, "%s", "-l");
parmList[1] = arg1;
parmList[2] = NULL;
execvp(parmList[0], parmList);