簡體   English   中英

chdir在c中不起作用

[英]chdir doesn't work in c

我有一個父親進程和一個子進程,第二個進程是用fork創建的,孩子從父親那里接收到一個char s [](s可以是諸如“ cd Music”之類的東西),我使用strtok從“ cd Music”中提取音樂,但是當chdir(dir)執行時,我得到“沒有這樣的文件或目錄”。 但是,如果我測試chdir(“ Music”),我不會出錯。 我想更改子進程的工作目錄。 請幫幫我...

 char *dir  = strtok(s," ");
 dir = strtok(NULL," ");
 if(chdir(dir) == -1){
    perror("Cannot change directory");    
}

fork()之后,父親和孩子之間沒有通信。 此(偽代碼)不起作用:

int s[100];
if (fork()) {
    /* father */
    strcpy(s, "cd Music"); /* pass string to child -- NOT! */
    /* ... */
} else {
    /* use uninitialized s */
}

這有效

int s[100] = "cd Music";
if (fork()) {
    /* father */
    /* ... */
} else {
    /* use children's copy of s */
}

嘗試打印出dir的內容。 也許它的價值不是您所期望的。

暫無
暫無

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

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