#define _GNU_SOURCE #include<stdio.h> #include<string.h> #include<unistd.h> #include<stdlib.h> #include<sys/wait.h> #include<sys/types.h> #define MAX_SIZE 1024 char* path[MAX_SIZE] = { NULL }; // 执行命令 void execute(char* argv[]) { // 退出shell,此处为并行,不能直接 exit if (strcmp(argv[0], "exit") == 0) { fprintf(stderr, "An error has occurred\n"); } else if (strcmp(argv[0], "cd") == 0) { // cd 命令,后面刚好有一个参数可跳转,否则为错误 if (argv[1] != NULL && argv[2] == NULL) { chdir(argv[1]); } else { fprintf(stderr, "An error has occurred\n"); } } else if (strcmp(argv[0], "path") == 0) { // path for (int i = 0; i < MAX_SIZE; i++) { path[i] = NULL; } int k = 1; while (argv[k] != NULL) { path[k - 1] = argv[k]; k++; } } else { int flag = 0, index = 0; char tp[MAX_SIZE];
【无标题】操作系统
最新推荐文章于 2024-07-30 17:23:09 发布