替换Linux内置的cmp实用程序

时间:2014-07-12 07:14:54

标签: c

Linux的cmp命令逐个字节地比较两个文件,并返回第一个差异(如果现在存在差异,则返回任何内容)。

在C中可以做什么样的事情或其他事情?只要发现差异,它就像比较getcharfscanfbreak的两个来电一样简单吗?

1 个答案:

答案 0 :(得分:1)

Linux's cmp command compares two files, byte-by-byte ...

进行一些优化:

Get the optimal block size of the files.
Find the rough position of the first difference by reading words, not bytes.

  

它会像比较两个getchar调用那样简单吗?   fscanf并在发现差异后立即中断?

它有一些额外的东西:

   -i, --ignore-initial=SKIP
          skip first SKIP bytes of both inputs

   -i, --ignore-initial=SKIP1:SKIP2
          skip first SKIP1 bytes of FILE1 and first SKIP2 bytes of FILE2

   -n, --bytes=LIMIT
          compare at most LIMIT bytes

您可以查看cmp.c [source code]