2014-07-12 58 views
1

Linux的cmp命令逐字節比較兩個文件,並返回第一個差異(如果現在有差異,則返回第一個差異)。替換Linux內置cmp實用程序

在C中可以做什麼樣的事情?一旦發現差異,它會如同比較getcharfscanfbreak這兩個調用一樣簡單嗎?

+1

爲什麼不試試呢? –

+0

你爲什麼不看「cmp」程序的來源?這可能很簡單。 – Barmar

回答

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]

+0

謝謝。我下載了GNU工具源代碼,並且不包含'cmp'。 – dsadsadsa

+0

不客氣 –

相關問題