xxd
- 学习xxd的使用,提交至少3个应用截图
- xxd的主要功能是什么?需要使用什么系统调用来实现?写出你的推导过程,命令
- 写出实现xxd的伪代码
学习xxd的使用,提交至少3个应用截图
man xxd
显示文件的十六进制形式
-b以二进制形式显示文件内容
将十六进制显示的内容输出到制定文件
指定显示文件的字节数
xxd的主要功能是什么?需要使用什么系统调用来实现?写出你的推导过程,命令
- 主要功能:xxd 命令用于使用二进制或十六进制格式显示文件内容,可以将指定文件或标准输入以十六进制转储,也可以把十六进制转储转换成原来的二进制形式。
- Usage:
xxd [options] [infile [outfile]]
or
xxd -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]] - 选项:
-a 缺省忽略转换: 使用‘*’替换空行. -b 二进数数据转储 (与 -ps,-i,-r不兼容). 默认为16进制. -c cols 每行多少列octets(特制8比特的字节). 默认为16列(-i: 12, -ps: 30). -E 使用EBCDIC字符集. 默认为ASCII字符集. -e 小端模式转储 (与 -ps,-i,-r不兼容). -g 在正常输出中,每组八位字节数. 默认为2个 (-e: 4). -h 输出此帮助. -i 使用C语言文件样式输出. -l len 在len个八位字节后停止. -o off 在off个偏移量后开始输出. -ps 以在行后添加16进制转储内容的格式输出. -r 逆向操作: 转换(或修补) 十六进制内容为二进制内容. -r -s off 在off个偏移量后开始转换16进制内容为二进制内容 -s [+][-]seek start at <seek> bytes abs. (or +: rel.) infile offset.(没看懂) -u 使用大写字母进行十六进制表示. -v 显示版本: "xxd V1.10 27oct98 by Juergen Weigert".
系统调用
man -k - system | grep calls
getmsg
写出实现xxd的伪代码
读取参数(输入文件标识符、输出文件标识符,其他参数);
if(存在参数-a):总动跳过空白内容;
if(存在参数-b):以二进制显示
if(存在参数-l):显示文件内容
…………
设定好参数后,从输入文件流中读入,从输出文件流中读出。