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镜像