从 char* 数组中的条目创建新字符串
Creating a new string from entries in a char* array
这是我的问题。我有一个用户输入的命令列表,我需要用它来传递到 execvp()
。这是 ls
命令的示例。
char *cmdList = {"ls", "-l", "folder1/folder2"}
现在我需要一种方法来修改第一个条目,使其具有“/bin/ls”
形式
是通过 strcat 命令实现的唯一方法吗?理想情况下,我想直接修改 ls
条目,这样我就可以将 cmdList
直接传递给 execvp()
.
您无需指定完整路径即可使用 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()
将在您的 PATH
中搜索 ls
并执行它。
这对我有用。
char *cmdList[]= {"ls", "-l", "folder1/folder2"};
cmdList[0]="/bin/1s";
printf("%s", *cmdList);
这是我的问题。我有一个用户输入的命令列表,我需要用它来传递到 execvp()
。这是 ls
命令的示例。
char *cmdList = {"ls", "-l", "folder1/folder2"}
现在我需要一种方法来修改第一个条目,使其具有“/bin/ls”
形式是通过 strcat 命令实现的唯一方法吗?理想情况下,我想直接修改 ls
条目,这样我就可以将 cmdList
直接传递给 execvp()
.
您无需指定完整路径即可使用 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()
将在您的 PATH
中搜索 ls
并执行它。
这对我有用。
char *cmdList[]= {"ls", "-l", "folder1/folder2"};
cmdList[0]="/bin/1s"; printf("%s", *cmdList);