📄 shell.c
字号:
#include "apue.h"#include <sys/wait.h>#include<malloc.h>#define MAXLINE 4096int main(){ char buf[MAXLINE], *argv[10],*p=NULL; pid_t pid; int status ,i=0, j=0,t=0; printf( "%%"); argv[0]=(char *)malloc(MAXLINE); p=argv[0]; while(fgets(buf,MAXLINE,stdin)!=NULL){ if(buf[strlen(buf)-1]=='\n') buf[strlen(buf)-1]=0; if((pid=fork())<0){ err_sys("fork error"); } else if(pid==0){ // execlp(buf,buf,(char *)0); while(buf[i]!=0){ if(buf[i]!=' '){ *p=buf[i]; p++; } else { t=i-1; if(buf[t]!=' '){ j++; *p='\0' ; argv[j]=(char *)malloc(MAXLINE); p=argv[j]; } } i++; } *p='\0'; ; argv[++j]=(char *)malloc(MAXLINE); argv[j]=NULL; execve(argv[0], argv, NULL); err_ret("couldn't execute : %s",buf); exit(127); } if((pid=waitpid(pid,&status,0))< 0) err_sys("waitpid error"); printf("%% "); } exit(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -