syscalls1
syscalls1
- 学***d的使用,提交至少3个应用截图
- xxd的主要功能是什么?需要使用什么系统调用来实现?写出你的推导过程,命令
- 写出实现xxd的伪代码
学***d的使用,提交至少3个应用截图
xxd
如果没有任何参数,xxd命令默认将文件内容按16进制的方式显示出来,并在右侧配合翻译
xxd -b
以2进制的方式显示内容
xxd -l
显示长度
xxd推导
xxd主要功能
在linux中使用man xxd
可以查看帮助手册
翻译过来就是:xxd创建给定文件或标准输入的十六进制转储。它还可以将十六进制转储转换回其原始二进制形式。与uuencode(1)和UUEdecode(1)一样,它允许传输二进制数据,在“邮件安全”ASCII表示中,但具有解码为标准输出的优势。此外,它还可用于执行二进制文件修补。
即xxd可以将文件以16进制或2进制转储。
xxd的系统调用
-
首先使用命令
man -k file|grep hex
,结果没有发现对应的系统调用(系统调用为2) -
想到可以直接用open,read,write,close结合编程来实现
xxd伪代码
- 使用open打开文件
- 使用read保存文件并保存在数组中
- 用编写的转换函数将read的内容转为16进制
- 用write将转换好的16进制写入到文件