在这里,我已经创建了一种方法来在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;
}
}