您的位置:首页 > 其它

【操作系统学习 02】xv6操作系统实现反向输出命令echo_reversal

2018-03-24 10:51 323 查看
echo_reversal.c实现
观察xv6操作系统中的echo代码可以知道,echo调用printf.c文件下的printf函数进行了输出#include "types.h"
#include "stat.h"
#include "user.h"

int
main(int argc, char *argv[])
{
int i;

for(i = 1; i < argc; i++)
printf(1, "%s%s", argv[i], i+1 < argc ? " " : "\n");
exit();
}那么我们要实现echo_reversal,就同样可以调用printf函数,只不过需要使用%c来对argv字符串数组中的每一项中的字符进行反向输出。我们使用strlen(char*)来获得argv数组的长度,从而从后往前遍历输出命令行中的字符串。此外,argv[0]所对应的字符串是我们所要输入的命令echo_reversal,因此我们并不需要输出argv[0]。(当然我们有别的实现方法,这里不一一列举)#include "types.h"
#include "stat.h"
#include "user.h"

int
main(int argc, char *argv[])
{
int i;

for(i = 1; i < argc; i++)
{
int j;
for(j = strlen(argv[i])-1; j >= 0;j--)
printf(1,"%c",argv[i][j]);
printf(1,"%s", i+1 < argc ? " " : "\n");
}
exit();
}

echo_reversal.c的编译与运行

我们需要在Makefile中加入echo_reversal.c的编译和运行命令,使得fs.img镜像中有编译好的运行程序,使得xv6中可以通过exec来运行程序,使我们所定义的命令生效。





执行make以及make qemu-nox命令,运行xv6,发现已经有我们所创建的程序的文件



执行echo_reversal命令,发现能够对输入的字符串进行反向输出,说明我们已经成功在xv6实现自定义的命令
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: