私はシェルを作成して使用するプロジェクトに取り組んでいます。 "| executable | -p | prompt |はユーザーがユーザー定義のプロンプトを選択できるようにすべきです。そうでない場合、デフォルトは" 257sh> "にする必要があります。私はargv [1]を印刷するときに、 "-p"を出力します。これは、コードが正常に動作していないために発生します。あなたがargv[1] == "-p"
Yを行うと(何のI入力thatsの場合)。ここに私のシェル関数がある。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" ':Cでは' == 'の代わりに' strcmp'を使用します。 – BLUEPIXY