当前位置: 首页 > news >正文

大连网站制作公司搜索引擎入口yandex

大连网站制作公司,搜索引擎入口yandex,网站建设需要匹配人员,给公司申请网站用自己的账号目录​​​​​​​ 前言 展示效果 实现代码 前言 该代码模拟了shell的实现#xff0c;也就是解析类似于“ls -a -l的命令#xff0c;当我们启动我们自己写的shell的可执行程序时#xff0c;我们输入ls的命令#xff0c;也可以展示出在shell中输入也就是解析类似于“ls -a -l的命令当我们启动我们自己写的shell的可执行程序时我们输入ls的命令也可以展示出在shell中输入ls时同样的效果一下为展示效果 展示效果 当我们在系统的shell下输入ls时会显示  以下代码是我自主模拟实现shell的程序执行ls命令时的情况   是不是很类似呢感兴趣的同学可以看看以下代码自己也模仿模仿哦εεε(~▽)~  实现代码  #include stdio.h #include string.h #include unistd.h//sleep函数//wait函数头文件 #include sys/types.h #include sys/wait.h//exit的函数 #include stdlib.h#define NUM 2024 #define SIZE 100 #define SEP //注意是而不是.因为strtok的参数是char*类型int main() {//0.shell或者软件只要启动了使用者不去终止就始终不能停止因此要一个死循环while (1){//1.打印类似于shell命令行前的 [xkjtxlocathost shell] 的信息printf([xkjtxlocatehost myshell]# );//不要换行否则就不像shell了用fflush去刷新缓冲区避免没有\n而导致的不输出[xkjtxlocatehost myshell]# 的问题我在《制作进度条》的那篇博客讲过fflush(stdout);//2.获取命令行char cmd_line[NUM];//可以定义为全局变量注意每次使用前memset(cmd_line, \0, sizeof cmd_line);if (fgets(cmd_line, SIZE, stdin) NULL)//推荐使用fgets建立对标准输入输出流概念方便以后学习基础IO{continue;//读取失败重新读取}cmd_line[strlen(cmd_line) - 1] \0;//char* fgets(char* str, int size, FILE* stream);//如果输入成功则返回str的起始地址否则为NULL//3.拆分命令行char* g_argv[NUM];g_argv[0] strtok(cmd_line, SEP);//第一次调用第一个参数传参目标字符串后面都传NULLint index 1;//使得ls命令时带上颜色if (strcmp(g_argv[0], ls) 0){g_argv[index] --colorauto;}//使得ll命令也可以执行if (strcmp(g_argv[0], ll) 0){g_argv[0] ls;g_argv[index] -l;g_argv[index] --colorauto;}while(g_argv[index] strtok(NULL, SEP));// printf(index %d\n, index);// //检测分割是否正确// for (index 0; g_argv[index]; index)//C99标准不支持在for循环内定义int// printf(g_argv[%d] %s\n, index, g_argv[index]);//4.TODO//内置命令的处理要父进程去执行的命令如cd命令//目前写法发现cd ~, cd -, rm等命令做不了//错误写法// if (g_argv[0] cd)if (strcmp(g_argv[0], cd) 0){if (g_argv[1] ! NULL)//路径合法{chdir(g_argv[1]);continue;//不去创建子进程}}//5.创建子进程//好处不会影响父进程//shell本来就是媒婆招实习生让实习生干活不影响媒婆pid_t id fork();int status 0;if (id 0)//child{execvp(g_argv[0], g_argv);//选这个函数的原因(1)v用的是数组恰好有数组 (2)每个都要绝对路径这是没有必要的因此可以使用带p的函数exit(1);//进行到这里一定是函数调用失败}//这里一定是父进程//father//获取子进程信息pid_t ret waitpid(-1, status, 0);/*#include sys/types.h#include sys/wait.hpid_t wait(int *status);pid_t waitpid(pid_t pid, int *status, int options);*/if (ret 0) //等待子进程成功{printf(exit code %d\n, WEXITSTATUS(status));//打印子进程退出码}}return 0; }
http://www.w-s-a.com/news/754622/

相关文章:

  • 茶文化建设网站的意义平顶山网站建设服务公司
  • 建设网站详细流程南京宣传片制作公司
  • 合肥网站排名什么网站做电气自动化兼职
  • 如何用api做网站交通建设门户网站
  • 阳西住房和城乡规划建设局网站长沙网站seo技巧
  • 长沙知名网站推广手机画设计图软件
  • 顺德公司做网站自己有网站怎么优化
  • 南京网站开发南京乐识专业外贸流程知乎
  • 盐田区住房和建设局网站分类网站有哪些
  • 建一个团购网站WordPress文章字号设置
  • 做漂亮的网站东营网站seo
  • 网站开发摊销做设计哪个网站可以接单
  • 惠州h5网站建设建设公司网站报价
  • 做网站多少钱 优帮云嘉兴五县两区网站建设
  • 三亚旅游网站策划书企业网站建设的定位
  • 网站建设工作台账网站建设的实验结论
  • 商业网站建设平台制作软件的软件
  • 本地网站开发wordpress页面关键词和描述
  • 微网站 合同软件开发培训方案
  • 怎么做淘宝客网站备案广告公司图片大全
  • 微信小程序展示网站建设多少钱做网站用什么软件初二
  • 瀑布流资源网站模板打码网站建设
  • wordpress 支付宝打赏网站视觉优化的意义
  • 建设网站需要几个文件夹永久免费内存大服务器
  • 可信赖的手机网站建设wordpress 显示摘要
  • 谁给我一个企业邮箱认证wordpress优化攻略
  • 建站软件免费版下载涿州做网站的
  • html5网站开发西安哪家网站建设公司好
  • 怎么做网站赚广州番禺区是富人区吗
  • 服装网站推广方案戴尔网站建设成功