gpt4 book ai didi

c - 了解 shell 实现中的命令执行

转载 作者:行者123 更新时间:2023-11-30 16:28:53 26 4
gpt4 key购买 nike

我正在尝试理解一个程序here我一直无法理解static int split(char *cmd_exec, int input, int first, int last) 函数 int input,int first,int last 的用途是什么,该函数返回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);
}

最佳答案

从您发布的代码中不清楚变量的含义。但是,如果您可以找到函数 command() 的任何文档或定义,您也许能够了解它们的预期用途。

话虽如此,从代码中可以清楚地看出,这些参数只是最初传递给 split() 并传递给 command() 的参数的副本>,因此整数很可能是通用参数,其含义取决于执行的命令的最终类型。

关于c - 了解 shell 实现中的命令执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52171591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com