Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Dec 2008 03:29:05 +0200
From:      Giorgos Keramidas <keramida@ceid.upatras.gr>
To:        Gary Kline <kline@thought.org>
Cc:        FreeBSD Mailing List <freebsd-questions@freebsd.org>
Subject:   Re: how can i be certain that a file has copied exactly?
Message-ID:  <87ocyy2you.fsf@kobe.laptop>
In-Reply-To: <20081227011335.GA29354@thought.org> (Gary Kline's message of "Fri, 26 Dec 2008 17:13:39 -0800")
References:  <20081227011335.GA29354@thought.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 26 Dec 2008 17:13:39 -0800, Gary Kline <kline@thought.org> wrote:
> is there a way i can be sure that my little C program has copied a
> dos/win file named, say, foo.htm\;7 to simply foo.htm?
>
> my program uses fopen/fgets/fputs to copy the markup files.  of the
> several i have copied, no problem.  unless i hack cmp or diff, i have
> to avoid the shell.
>
> any ideas? in other words, does anybody have a prefab cmp(oldfile,
> newfile) fn?

You don't need a prefab `cmp' function, because the base system already
includes tools that can help:

  (a) The `cmp' utility:

            cmp file1 file2 ; echo $?

  (b) Checksum tools like `md5', `sha1' and `sha256':

            md5 file1 file2

            sha1 file1 file2

            sha256 file1 file2

      You can then compare the file checksums.  If both the md5 and
      sha256 checksums are identical, then the files are the same[1].

      [1] There is a possibility of ``checksum collisions'', especially
          with md5 (see [2] for more details).  But if you use two or
          more checksum types and none of them show differences, the
          odds of a collision are small enough for most practical
          purposes.

      [2] http://en.wikipedia.org/wiki/Md5#Vulnerability




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?87ocyy2you.fsf>