simpleshell.c
来自「linux 下模拟shell的实现。 支持管道等功能。读proc文件」· C语言 代码 · 共 72 行
C
72 行
#include <unistd.h>#include <stdio.h>#define MAX_CMD 100int main(){ int pid; int i,j,k,len,tag; char cmd[10][10]; char *argv[10]={NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}; char buffer[100]; char *file; char* tip="kxz_shell# "; printf("Welcome to kxz_shell!\nDeveloped by Kong Xiangzhen 03055078 jsj33\n ");again: for(i=0;i<10;i++) { argv[i]=NULL; } if((len=write(1,tip,11))<0) { perror("write error!"); exit(0); } if((len=read(0,buffer,sizeof(buffer)))<0) { perror("read error!"); exit(0); } i=0; j=0; k=0; while(i<len-1) { while((buffer[i]!=' '&&buffer[i]!='\n')&&i<len-1) { cmd[j][k]=buffer[i]; i++; k++; } cmd[j][k]='\0'; argv[j]=cmd[j]; if(buffer[i]==' ') { while(buffer[i]==' ') i++; k=0; j++; } } while((pid=fork())<0); if(pid==0) { file=cmd[0]; tag=execvp(file,argv); if(tag<0) printf("Bad command!\n"); } else{ wait(0); goto again; } return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?