カスタムシェルでのCDデバッグの問題[閉じる]

カスタムシェルでのCDデバッグの問題[閉じる]

私が作成したカスタムシェルcdコマンドに問題があります。 cdが唯一のパラメータである基本ケースをテストしています。この場合、デフォルトディレクトリを/ homeディレクトリに変更する必要があります。引き続き「ERROR Home」エラーが発生するため、cdコマンドを実行していますが、ディレクトリは変更されません。


if(strcmp(command[0], "cd") == 0)
{
   int check;
   if(command[1] == NULL)
   {            
        check = chdir("/home");
        if(check != 0)
        {
           printf(" ERROR Home \n ");
        }
            
    }
    else
    {
        check = chdir(command[1]);
        if(check != 0)
        {
            printf("error command\n");
        } 
    } 
 } // end if

私はこのランタイムエラーを引き起こす原因を見落としていますか?


以下は、別の方法でコマンドを入力しようとしたときに何が起こるかについての更新されたスクリーンショットです。 [0]を実行する前に、コマンドに何があるかを確認するために印刷行を追加しました。私のシャットダウンコマンドは機能しません。 ここに画像の説明を入力してください。

ベストアンサー1

chdir()は戻り状態でエラーが何であるかを示しますが、エラーメッセージにはそれを入れません。おなじみのエラーメッセージを表示する方法については、perror(3)ライブラリの呼び出しを読んでください。

おすすめ記事