xxd

xxd

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

学***d的使用,提交至少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):显示文件内容
…………
设定好参数后,从输入文件流中读入,从输出文件流中读出。

posted @ 2021-10-25 10:39  绒绒的欧嘛harper  Views(948)  Comments(0Edit  收藏  举报
*/