簡體   English   中英

C中的Unix Shell-更改目錄

[英]Unix Shell in C - Change Directory

我是使用簡單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]的標記化參數部分: char strnBuffer[1000] ,該char strnBuffer[1000]已為命令標記化: command[0] = strtok(strnBuffer, " ");

我非常感謝您的幫助/見解。

謝謝。

您可能在輸入行的末尾有一個'\\n' 您的strtok僅將空格識別為分隔符,因此不會碰到換行符。 chdir("dir\\n")將會失敗,除非您實際上有一個目錄,其名稱末尾帶有換行符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM