Syscall

使用此命令所支持的特有选项,亦可以以二进制的形式查看文件。

如果没有给定输入文件,标准输入就作为输入文件infile。如果infile是一个‘-' 字符,也从标准输入读入。如果没有给定outfile (或者它的文件名是一个‘-'字符), 结果将输出至标准输出。

xxd实现使用了那些系统调用:

read open write close

关于此命令经常使用的选项主要有:

(1)-a : 它的作用是自动跳过空白内容,默认是关闭的

(2)-c : 它的后面加上数字表示每行显示多少字节的十六进制数,默认是16bytes,最大是256bytes

(3)-g : 设定以几个字节为一块,默认为2bytes

(4)-l : 显示多少字节的内容

(5)-s : 后面接【+-】和address。“+”表示从地址处开始的内容,“-”表示距末尾address开始的内容

(6)-b:以二进制(0 or 1)的形式查看文件内容

应用实例:

将文件内容转换为16进制

-b将文件内容转换为2进制

-l len | -len len

        输出<len>个字符后停止。

 

查看xxd 详细信息

 xxd的伪代码:

main:

读取参数(输入文件标识符、输出文件标识符,其他参数);

if(存在参数-a):总动跳过空白内容;

if(存在参数-b):以二进制显示

if(存在参数-l):显示文件内容

。。。

设定好参数后,从输入文件流中读入,从输出文件流中读出。

原文地址:https://www.cnblogs.com/kuohao1214/p/15457665.html