我正在尝试了解程序here
我还无法理解
static int split(char *cmd_exec, int input, int first, int last)
函数int输入的目的是什么,int首先,int最后在这里,
此函数返回return command(input, first, last, new_cmd_exec1);
input,first,last和new_cmd_exec1在这里表示什么?
为什么我们需要将传递给shell的命令溢出?
相关代码如下
static int split(char *cmd_exec, int input, int first, int last)
{
char *new_cmd_exec1;
new_cmd_exec1=strdup(cmd_exec);
//else
{
int m=1;
args[0]=strtok(cmd_exec," ");
while((args[m]=strtok(NULL," "))!=NULL)
m++;
args[m]=NULL;
if (args[0] != NULL)
{
if (strcmp(args[0], "exit") == 0)
exit(0);
if (strcmp(args[0], "echo") != 0)
{
cmd_exec = skipcomma(new_cmd_exec1);
int m=1;
args[0]=strtok(cmd_exec," ");
while((args[m]=strtok(NULL," "))!=NULL)
m++;
args[m]=NULL;
}
if(strcmp("cd",args[0])==0)
{
change_directory();
return 1;
}
else if(strcmp("pwd",args[0])==0)
{
parent_directory();
return 1;
}
}
}
return command(input, first, last, new_cmd_exec1);
}
答案 0 :(得分:0)
从您发布的代码中,变量的含义不清楚。但是,如果您可以找到功能command()
的任何文档或定义,则可以了解其预期目的。
话虽如此,从代码中可以很明显地看出这些参数只是最初传递给split()
并传递给command()
的参数的副本,因此整数很可能是通用参数,其含义将取决于最终执行的命令的类型。