2 Star 0 Fork 0

狐皮先生/nb.c

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
mini_shell.c 970 Bytes
一键复制 编辑 原始数据 按行查看 历史
狐皮先生 提交于 2023-05-05 22:33 . mini_shell
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>
#define NUM 128
#define CMD 64
int main()
{
char conmmand[NUM];
for(;;)
{
char *argv[CMD];
//---------1-----------------
conmmand[0] = 0;//
printf("[zjy@myshell_-centos c]# ");
fflush(stdout);
//---------2-----------------
fgets(conmmand,NUM,stdin);
conmmand[strlen(conmmand)-1]='\0';
//---------3-----------------
const char*sep=" ";
argv[0]=strtok(conmmand,sep);
int i=1;
while(argv[i]=strtok(NULL,sep))
++i;
if(fork()==0)
{
printf("子进程替换\n");
execvp(argv[0],argv);
printf("子进程替换失败\n");
exit(-1);
}
printf("父进程开始等待\n");
waitpid(-1,NULL,0);
printf("父进程结束等待\n");
for(i=0;argv[i];++i)
{
printf("argv[%d]:%s\n",i,argv[i]);
}
// execl()
//printf("echo:%s",conmmand);
}
return 0;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mr-fox-skin/nb.c.git
git@gitee.com:mr-fox-skin/nb.c.git
mr-fox-skin
nb.c
nb.c
master

搜索帮助