繁体   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