当前位置:网站首页>进程(番外):自定义shell命令行解释器
进程(番外):自定义shell命令行解释器
2022-08-02 03:32:00 【RNGWGzZs】
---------------------加油!
本篇的理论较少,当然代码量也很少就仅仅是上传的代码而已。
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<string.h>
#define MAX_ORDER 1024
#define MAX_LINE 32
int main()
{
//命令 输入
char cmd[MAX_ORDER];
char* line[MAX_LINE]; //指令参数 拆开
//shell 脚本是一直运行的状态
while(1)
{
printf("\n[[email protected] my_shell]# ");
fgets(cmd,MAX_ORDER,stdin); //读取
cmd[strlen(cmd)-1]='\0'; //解决\n
//printf("%s\n",cmd);
line[0]=strtok(cmd," ");
int i=1;
while(line[i]=strtok(NULL," ")){
i++;
}
//创建子进程 进行调用
pid_t id=fork();
if( id == 0 )
{
//child 进行执行
execvp(line[0],line);
// 执行谁 怎样执行
}
int status=0;
pid_t ret=waitpid(id,&status,0); //此时父进程只需要等就行了
if(ret >0)
{
printf("exit code:%d\n",WEXITSTATUS(status));
}
}
return 0;
}
最终代码就段落。
祝你好运~
边栏推荐
猜你喜欢
[Popular Science Post] I2C Communication Protocol Detailed Explanation - Partial Software Analysis and Logic Analyzer Example Analysis
联阳(ITE)IT66021FN:HDMI转RGB芯片 3D 资料
工业边缘网关究竟强大在哪里?
移动云物联网预研及阿里云开发对比分析
开源日志库 [log4c] 使用
GM8775C规格书,MIPI转LVDS,MIPI转双路LVDS分享
n皇后问题(回溯法)
【DS3231 RTC实时时钟模块与Arduino接口构建数字时钟】
AD8361检波器
OneNET Studio与IoT Studio对比分析
随机推荐
【TCS3200 颜色传感器与 Arduino 实现颜色识别】
MOS管开关原理及应用详解
C语言教程 - 制作单位转换器
将ORCAD原理图导入allegro中进行PCB设计
野火ISO-V2学习
USB3.0一致性测试方法
AD8307对数检波器
VCA821可变增益放大器
MIPI解决方案 ICN6202:MIPI DSI转LVDS转换芯片
HDMI转MIPI CSI东芝转换芯片-TC358743XBG/TC358749XBG
【Arduino 连接GP2Y1014AU0F 灰尘传感器】
Compatible with C51 and STM32 Keil5 installation method
【NTC 热敏电阻与 Arduino 读取温度】
无向图的连通分支数(并查集)
LT8918L LVDS转MIPI芯片技术支持资料
调试九法准则
【MQ-3 酒精检测器与 Arduino检测酒精】
【科普贴】MDIO接口详解
USB HUB USB集线器电路设计
联阳IT66121FN提供SDI转HDMI方案分享