所以我工作的一個項目創建和使用shell。必須做的一件事是「|執行| -P |提示|。應該允許用戶選擇一個用戶自定義的提示,否則,默認的應該是‘257sh>’我寫我的代碼來做到這一點。然而不管是什麼它一直移動到else語句。經過一些嘗試,我知道,我的argv[1] == "-p"
線是什麼原因造成的問題,因爲沒有它的代碼工作。事情是,當我打印出來的argv [1],它打印「-p」 (假設這就是我輸入)。這是我的外殼功能。比較C字符串與字符串指針平等
void shellLoop(char *n)
{
char *line;
char **args;
int status;
char name = n;
do{
printf("%s>", n);
line = sysReadLine();
args = splitLine(line);
status = execute(args);
free(line);
free(args);
}while(status);
}
這裏是我的主要功能
int main(int argc, char *argv[])
{
if(argc == 3 && argv[1] == "-p"){
shellLoop(argv[2]);
}
else{
shellLoop("257sh");
}
return EXIT_SUCCESS;
}
'的argv [1] == 「-p」':使用'strcmp'代替''==在C. – BLUEPIXY