Linux

    xiaoxiao2022-07-05  152

    编写自主shell.

    #include<stdio.h> #include<sys/wait.h> #include<unistd.h> #include<stdlib.h> #include<string.h> int main() { char buf[1024] = { 0 }; while(1) { printf("mysell#"); fflush(stdout); size_t s = read( 0, buf, sizeof( buf ) ); if(s > 0) { buf[s - 1] = '\0'; printf("%s\n", buf); } char* start = buf; char* _argv[32]; _argv[0] = buf; int i = 1; while(*start) { if(*start == ' ') { *start = '\0'; start ++; _argv[i++] = start; } else { start ++; } } _argv[i] = NULL; pid_t pid; pid = fork(); if(pid < 0) { perror("fork"); exit(1); } if(pid == 0) { execvp(_argv[0], _argv); } else if(pid > 0) { int st = 0; wait(&st); } } return 0; }
    最新回复(0)