MIT 6.s081 实验解析——labs1

系列文章目录

MIT 6.s081 实验解析——labs1


文章目录

  • 系列文章目录
  • 测试判断流程
    • sleep
  • 未完待续


测试判断流程

  1. 完成代码后将.c文件放入user文件夹中
  2. 在makefile文件的UPROGS处添加要测试的文件,如要添加的是sleep.c,则写为_sleep。
    在这里插入图片描述
  3. 重新编译xv6
make qemu
  1. 退出qemu,在文件夹下输入
./grade-lab-util <文件名>//以sleep为例
./grade-lab-util sleep

sleep

   第一个实验虽然简单,但可以通过这个程序来了解整个命令的运行过程。我们将sleep命令编译入系统之后,在shell里输入sleep 10,shell接受到这段参数之后,进行判断,这是一个程序调用的指令。

//sh.c对应源码case EXEC:ecmd = (struct execcmd*)cmd;if(ecmd->argv[0] == 0)exit(1);exec(ecmd->argv[0], ecmd->argv);fprintf(2, "exec %s failed\n", ecmd->argv[0]);break;

可以看到在shell的内部,将第一个参数作为文件名,第二个参数作为接受参数,通过exec系统调用对应程序,这才进入到我们自己写的sleep程序中运行。注意:是将整个argv[]传给了sleep,包括argv[0]。

sleep程序很简单,当参数不为2时,直接警告参数错误,并exit(1)退出。当参数正确时,用atoi函数将字符串转为int,然后直接使用sleep系统调用,最后exit(0).

#include "kernel/types.h"
#include "kernel/stat.h"
#include "user/user.h"int main(int argc,char* argv[]){if(argc!=2){fprintf(2,"error,please input correct time");exit(1);}sleep(atoi(argv[1]));exit(0);
}

未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/293170.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊圣诞关键词怎么选?圣诞节促销活动有哪些?——站斧浏览器

亚马逊圣诞关键词怎么选 以下是在亚马逊圣诞期间利用长尾关键词的一些建议&#xff1a; 圣诞主题关键词&#xff1a;随着节日的临近&#xff0c;与圣诞相关的关键词搜索热度将急剧上升。在产品标题、描述、关键词等位置使用与圣诞节相关的关键词&#xff0c;比如“圣诞礼物”…

自动化测试工具-Selenium:WebDriver的API/方法使用全解

我们上一篇文章介绍了Selenium的三大组件&#xff0c;其中介绍了WebDriver是最重要的组件。在这里&#xff0c;我们将看到WebDriver常用的API/方法&#xff08;注&#xff1a;这里使用Python语言来进行演示&#xff09;。 1. WebDriver创建 打开VSCode&#xff0c;我们首先引…

金融CRM有用吗?金融行业CRM有哪些功能

市场形式波诡云谲&#xff0c;金融行业也面临着资源体系分散、竞争力后继不足、未知风险无法规避等问题。金融企业该如何解决这些问题&#xff0c;或许可以了解一下CRM管理系统&#xff0c;和其提供的金融行业CRM解决方案。 金融行业是银行业、保险业、信托业、证券业和租赁业…

2023年终总结 | 四平八稳

年度回顾 年度关键词&#xff1a;四平八稳 百科解读&#xff1a;形容物体放置的平稳或言行稳当&#xff1b;也指做事但求无过&#xff0c;不思进取。 我在写这篇文章就在思考用什么关键词来描述我过去这一年&#xff0c;似乎这一年没有特别让我特别惊喜的事情&#xff0c;无论是…

NLP论文阅读记录 - AAAI-23 | 01 Cogito Ergo Summ:通过语义解析图和一致性奖励对生物医学论文进行抽象总结

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.相关工作2.1抽象概括2.2图增强摘要2.3 抽象概括的强化学习 三.本文方法COGITOERGOSUMM 框架3.1 问题陈述3.2 图表构建**事件图****AMR 图****图合并和重新连接**Model文本编码器图编码器解码器…

SPI 串行外设接口

SPI 是什么&#xff1f; SPI 是串行外设接口&#xff08; Serial Peripheral Interface&#xff09;的缩写&#xff0c;是一种同步串行数据传输协议&#xff0c; 是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线&#xff0c;并且在芯片的管脚上只占用四根线&#xf…

Hypervisor Display架构

Hypervisor Display架构部分 1&#xff0c;所有LA侧的APP与显示相关的调用最终都会交由SurfaceFlinger处理 2&#xff0c;SurfaceFlinger会最终调用android.hardware.graphics.composer2.4-service服务 3&#xff0c;android.hardware.graphics.composer2.4-service服务会调用G…

突破性能瓶颈:使用Asyncio构建高并发Python应用程序

是一种处理多个任务同时执行的编程方式&#xff0c;在Python中&#xff0c;asyncio是一种用于实现异步编程的强大工具。asyncio基于协程&#xff08;coroutine&#xff09;的概念&#xff0c;能够高效地处理I/O密集型任务。本文将介绍asyncio的基本原理和使用方法。 为啥需要a…

[Unity错误解决]There are 2 audio listeners in the scene.

There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene. 从组件中找出包含 Audio Listener 的&#xff0c;只激活一个&#xff0c;其他的关掉

NativePHP:使用 PHP 构建桌面应用程序

PHP 在我心中占据着特殊的位置。它是我的第一份工作&#xff0c;我记得我在家里花了无数个小时做一些小项目。我非常想用 PHP 创建桌面应用程序&#xff0c;但我从来没有做到过。 现在&#xff0c;感谢 NativePHP&#xff0c;我可以了。 NativePHP 追随 Slack、Discord 和 Tre…

STM32的以太网外设+PHY(LAN8720)使用详解(2):硬件设计

0 工具准备 1.野火 stm32f407霸天虎开发板 2.LAN8720数据手册 3.STM32F4xx中文参考手册1 PHY&#xff08;LAN8720&#xff09;硬件配置 1.1 硬件配置引脚说明 在LAN8720上电或复位时会读取一些特定引脚的电平&#xff0c;根据电平来进行硬件配置。LAN8720的引脚分布如下&…

电子合同在物流运输中的场景应用

物流运输行业发展迅速&#xff0c;形成了采购、运输、仓储、配送、代理等全面的产业体系&#xff0c;在业务的开展过程中&#xff0c;各类纸质文件的签章管理如承运协议、运输合同、电子回单、入仓及出仓单据、融资保理协议、代理合作协议、商家入驻协议、员工劳动合同等&#…