从char *数组中的条目创建新字符串

时间:2016-01-14 20:49:35

标签: c arrays char execvp

所以这是我的问题。我有一个从用户输入的命令列表,我需要用它来传递到ls。这是char *cmdList = {"ls", "-l", "folder1/folder2"} 命令的示例。

ls

现在我需要一种方法来修改第一个条目,使其形式为" / bin / ls"

是通过strcat命令执行此操作的唯一方法吗?理想情况下,我希望直接修改cmdList条目,以便将execvp()直接传递到var defaultConfig = { everything: 'goes', 'in': {here: ""}, once: true }; var selectedOptions = jQuery.extend(true, {}, defaultConfig, optionConfig);

2 个答案:

答案 0 :(得分:1)

您无需指定使用execvp()的完整路径。所以你不必担心修改第一个参数。例如,如果您有一个带参数的数组:

#include <unistd.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
   char *cmdList[] = {"ls", "-l", "folder1/folder2", 0};

   execvp(cmdList[0], cmdList);
}

execvp()将搜索您ls中的PATH并执行它。

答案 1 :(得分:0)

这适合我。

char * cmdList [] = {“ls”,“ - l”,“folder1 / folder2”};

cmdList [0] = “/ bin中/ 1”; printf(“%s”,* cmdList);