分段错误:使用“ ls”调用时为11

时间:2018-06-24 15:58:46

标签: c shell unix

在这里,我已经创建了一种方法来在C的UNIX shell实现中模拟“ ls” UNIX命令。9/10倍我的Shell可以完美运行,而另一次却遇到了段错误:'ls'上为11命令。我想知道是什么原因导致此故障发生。

void lookInsideCurrentDirectory(char **parsed){
char** argv = malloc(sizeof(char*) * 100);

int counter = 0;
while(parsed[counter] != NULL){
    argv[counter] = parsed[counter];
    printf("counter: %d argv: %s\n", counter, argv[counter]);
    counter++;
}
argv[counter] = NULL;

pid_t pid = fork();
if(pid == -1){
    return;
}
else if(pid == 0){
    if(execvp(argv[0], argv) == -1){
        perror("Error: ");
    }
    exit(0);
}
else{
    printf("child\n");
    wait(NULL); 
    return;
}
}

0 个答案:

没有答案