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

网站开发环境的安装说明免费制作网页的网站

网站开发环境的安装说明,免费制作网页的网站,网站建设成本控制,邯郸渊博网络有限公司目录 前言 一、打印提示信息 二、分割字符串 三、替换程序 前言 之前学习了很多进程相关的知识#xff0c;包括环境变量、进程的创建与退出、进程等待、进程替换。现在可以用所学的作一个小总结#xff0c;手撕一个shell解释器#xff0c;大致的思路是先通过环境变量获…目录 前言 一、打印提示信息 二、分割字符串 三、替换程序 前言 之前学习了很多进程相关的知识包括环境变量、进程的创建与退出、进程等待、进程替换。现在可以用所学的作一个小总结手撕一个shell解释器大致的思路是先通过环境变量获取相关信息再通过fork创建子进程并进行程序替换bash的命令。 一、打印提示信息 当我们链接上虚拟机就会有这一行输出到屏幕上告诉我们可以开始输入命令了。首先我们得把提示写出来。 环境变量中有用户名、主机号、当前目录等信息我们可以通过 getenv 获取相关信息进行打印。 同时我们输入命令会有很多空格存在比如 ls -a -l。因此不能用scanf获取输入信息可以用fgets第三个参数为stdin标准输入。最后输入完毕后会输入回车换行我们将最后一个字符设置为  \0  代表字符串的结束同时也避免了换行。 #inlcudestdio.h #includestdlib.h #includeunistd.h #includestring.h #define NUM 1024char* getUsername() {char* env getenv(USER);if(env) return env;return NULL; }char* getHostname() {char* env getenv(HOSTNAME);if(env) return env;return NULL; }char* getPwd() {char* env getenv(PWD);if(env) return env; return NULL; }int main() {char command[NUM];printf([%s%s %s]$ ,getUsername(),getHostname(),getPwd());//打印fgets(command,NUM,stdin); //输入完成后还会输入回车导致换行command[strlen(command)-1] \0; printf(%s,command); // 打印看看是否获取到了完整的字符串 }运行结果如下获取了完整了字符串。 二、分割字符串 分割字符串C语言可以用strtok函数他第一个参数为需要分割的字符串第二个参数是按什么字符进行分割。如果想继续往后分割同一字符传后续需要将第一个参数设置为NULL。 分割成功返回值为分割出来的字符串如果分割失败返回0。 我们先分割一次字符串放到数组argv里后面使用while循环一直进行分割由于分割失败返回0自然而然就退出了。下面是打印代码看看结果是否正确。 成功分割。 三、替换程序 fork出子进程然后使用execvp进行程序替换第一个参数为argv[0]比如你输入ls -a -l他会自己去path路径里面查找 ls 是否存在第二个参数为agrv整个数组放进去是命令行参数。这里写简单一点没有处理等待失败的情况。 成功进行替换。  最后给他套上循环一个建议的shell就做好了。我们写的比较简单有很多bug功能还不算完善但是勉强也算够用。 附上总代码  #includestdio.h#includestdlib.h#includeunistd.h#includestring.h#define NUM 1024#define SIZE 64char* getUsername(){char* env getenv(USER);if(env) return env;return NULL;}char* getHostname(){char* env getenv(HOSTNAME);if(env) return env;return NULL;}char* getPwd(){char* env getenv(PWD);if(env) return env;return NULL;}int main(){while(1){char command[NUM];char* argv[SIZE];int argc 0;printf([%s%s %s]$ ,getUsername(),getHostname(),getPwd());//打印fgets(command,NUM,stdin); //输入完成后还会输入回车导致换行command[strlen(command)-1] \0;argv[argc] strtok(command, );while(argv[argc] strtok(NULL, ));pid_t id fork();if(id 0){//childexecvp(argv[0],argv);exit(1);}else{pid_t rid waitpid(id,NULL,0);if(rid0) printf(等待成功\n);}}} 这里完善了一下代码添加了重定向在大标题“四”。
http://www.laogonggong.com/news/125165.html

相关文章:

  • 做网站能赚钱吗知乎北京微网站建设公司哪家好
  • 山石网站超市网页游戏开服表最新
  • 个人做商贸网站wordpress 链接修改密码
  • 庆阳手机网站设计wordpress前台显示双语
  • 邮件验证登录网站开发中国企业公示信息网
  • 阿里云如何添加新网站长春建筑公司有哪些公司
  • 海洋公园网站建设方案网站板块模板
  • 婚庆手机版网站建设对电子商务网站建设与管理的心得
  • 免费ae模板素材网站网站图片移动怎么做
  • sdcms网站建设模板网上销售怎么做的更好
  • 个商个体户可以建设网站不怎么样做免费的百度seo
  • 微机课做网站个人网站用备案吗
  • 漫画交流网站怎么做客户拒绝做网站的理由
  • 怎么知道网站程序是什么做的公司网站设计制作开发方案
  • 惠州的服装网站建设在线平面设计图
  • 山西建设厅官方网站品牌vi设计欣赏
  • 佛山建站佛山网页设计手机开发安卓app
  • 域名服务器没有该网站的域的列表wordpress仿谷歌主题
  • 花木网站源码怎么做网站推广毫州
  • 成都网站建设专家单位举报网站建设维护情况报告
  • 海尔集团网站的网络营销是什么联通专线做网站
  • 网站编辑年终总结wordpress图片上传
  • 塔罗牌手机网站制作网站推广和优化系统
  • 网站建设与小程序开发熊掌号wordpress 抓爬图片
  • 做网站分为竞价和优化头条关键词排名查询
  • 社交网站用户体验济南建站免费模板
  • 免费建站哪个网站最好朝阳网站建设是什么
  • 上海做公司网站的公司流程优化四个方法
  • 如何访问自己建的网站租车网站系统规划
  • 怎样给网站做seo优化拍卖网站模版