所以我正在构建一个 shell,我正在执行的一个命令是提示符。这将接受一个参数并将其设置为提示,但如果没有输入参数,它将要求用户输入,然后使用它......这措辞非常糟糕,所以这里有一个例子:
[SHELL] prompt code
code[SHELL] ls
code[SHELL] ....
或者
[SHELL] prompt
please enter a prefix: (user input goes here, say code again)
code[SHELL]
现在第一种情况很好,但是当我尝试不带参数的提示时,它会要求用户输入,但是当我输入它时,它会出现错误,我不知道为什么。
这是我到目前为止的代码:
void prompt(char *target)
{
if(!target)
{
printf("Please enter a prefix: ");
scanf("%s", &target);
}
char *result = malloc(strlen(SHELL) + strlen(target) + 1);
strcpy(result, target);
strcat(result, SHELL);
SHELL = result;
}
有任何想法吗??也许这只是我的一个简单错误,但似乎这应该可行。
顺便说一句,在我的代码中,“SHELL”只是一个字符数组的宏,即“[MY_SHELL]:”。