syscalls1

1.学习xxd的使用,提交至少3个应用截图
2.xxd的主要功能是什么?需要使用什么系统调用来实现?写出你的推导过程,命令
3.写出实现xxd的伪代码

以我的学号姓名创建一个文件:20191212stx

应用一:显示20191212stx文件除了第一行以外的所有

输入命令xxd -s 0x10 20191212

得到结果:

应用二:显示8个字符,每行2个字符,使用连续显示

输入命令 :xxd -l 8 -c 2 20191212stx

得到结果:

应用三 20191212stx 输出到 output 并在前面增加 100 个字节的 0x00

输入命令:xxd 20191212stx | xxd -r -s 100 > outfile

 vim查看结果:

xxd主要功能Linux系统xxd命令使用二进制或十六进制格式显示文件内容。若未指定outfile参数,则将结果显示在终端屏幕上;否则输出到outfile中。当设备没有文件系统或不支持动态内存管理时,有时会将二进制文件(如引导程序和固件)内容存储在C代码静态数组内。此时,借助xxd命令就可自动生成版本数组。

系统调用:open()、read()、write()、close()

推导过程:xxd的使用过程主要是打开目标文件,读取文件内容、将文件每个字节以十六进制的形式写入目标文件,当规定的数目写完以后关闭文件。所以用到的系统调用是:open、read、write、close。

伪代码:

open inputfile

read inputfile

if(i=beginnum;i<=bytenum;i++)

{

write byte(i) in outputfile in hexadecimal

}

close file

原文地址:https://www.cnblogs.com/stx3220665294/p/15457369.html