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

大学生一个人做网站服装设计公司名称

大学生一个人做网站,服装设计公司名称,陕西省建设网三类人员证书下载,怎么开发ios软件目录 前言 一、打印提示信息 二、分割字符串 三、替换程序 前言 之前学习了很多进程相关的知识#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.w-s-a.com/news/517225/

相关文章:

  • 如何编写网站建设销售的心得网站的权限管理怎么做
  • 网站业务员好做吗无忧网站优化
  • 网站随机代码网站建设费 账务处理
  • 商洛网站建设哪家好网站建设 织梦者
  • 怎么创建收费网站宁夏住房和城乡建设部网站
  • 怎么确认网站是什么语言做的用php和mysql做网站
  • 安徽做网站的公司有哪些星子网络公司
  • 肥西县重点工程建设管理局网站wordpress界面菜单怎么弄
  • 宁夏网站开发设计说明书wordpress主题背景图片
  • 同一个阿里云可以做两个网站吗织梦 帝国 学校网站
  • 城阳网站建设培训网站后台怎么上传文件
  • 重庆茂尔建设集团有限公司网站网页制作教程软件
  • 金湖建设工程质量监督网站高端网站建设公司哪里济南兴田德润实惠吗
  • 站酷设计网站官网入口文字设计seo网站推广工具
  • 专业移动网站建设网站建设软件dw
  • 摄影网站设计思想视觉传达毕业设计作品网站
  • 需要优化的网站有哪些设计装修app
  • 数据型网站建设东莞好的网站国外站建设价格
  • 网络营销方法有哪些举例seo应用领域有哪些
  • 建设银行官方网站官网做网站的专业叫什么
  • 矿区网站建设濮阳做网站的公司有哪些
  • 有什么网站可以自己做书甘肃建设厅网站首页
  • 门户网站建设哪专业怎么把自己做的网站登录到网上
  • 如何做网站小编餐饮业手机php网站
  • 备案 网站商城网站设计公司排名
  • 汕头做网站优化公司seo软件简单易排名稳定
  • 如何做众筹网站微网站设计平台
  • 富平做网站十堰优化seo
  • 免费网站空间可访问wordpress弹窗注册代码
  • 东莞网站建设教程南京做代账会计在哪个网站上找