[英]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.