我正在尝试在 C 中实现一个简单的 shell,我的程序正在导致无限循环并Myshell>在用户有机会输入任何命令之前创建大量新进程/打印。我似乎找不到阻止这种情况的方法,如果有人可以提供帮助,那就太好了!(没有#include在顶部粘贴标题
int main(int argc, char *argv[]){
    char buffer[512];
    int *status;
    size_t nargs;
    pid_t pid;
    char delim[] = "\n";
    while(1){
        pid = fork();       
        if(pid){
        printf("Myshell> ");
        fgets(buffer, 512, stdin);
        //parse(buffer, argv);
        argv[0] = strtok(buffer, delim);
        for(argc=1; argv[argc-1]; argc++){
            argv[argc] = strtok(NULL, delim);
        }       
        if(!strcmp(argv[0], "exit"))
            exit(0);
        printf("Waiting for child (%d)\n", pid);
        pid = wait(status);
        printf("Child (%d) finished\n", pid);
        exit(0);
        }else{
            if(execvp(argv[0], argv)){
                printf("error");
                exit(1);
            }else{
                exit(0);
            }
        }
    }
    return 0;
}