我是另一个使用简单 Shell 的 CS 初学者。目前,如果传递了参数,我正在尝试更改当前目录,否则,报告到当前目录。
我尝试chdir()
在我的程序中使用,但它显然不起作用。我尝试传递一个char*
标记化的参数。我也尝试过argv[1]
,但我一定做错了什么,因为似乎两者都不起作用。
另外,我不完全确定如何使参数指针(包含目录字符串)静态,以便当我使用 putenv(ARGUMENT HERE) 时没有问题。
这是我的代码的相关部分:
else if (strncmp(command[0], "cd", 2) == 0)
{
char *argmnts = strtok(0, " ");
if (arguments != NULL)
{
chdir(argmnts);
putenv(argmnts); // THE ARG STRING NEEDS TO BE A STATIC COPY
getcwd(promptBuff, sizeof(argmnts));
}
}
指针 argmnts 指向标记化参数部分来自:char strnBuffer[1000]
已经为命令标记化:command[0] = strtok(strnBuffer, " ");
我非常感谢任何帮助/见解。
谢谢你。