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