From owner-freebsd-questions@FreeBSD.ORG Sat Dec 27 01:29:29 2008 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 96E921065670 for ; Sat, 27 Dec 2008 01:29:29 +0000 (UTC) (envelope-from keramida@ceid.upatras.gr) Received: from igloo.linux.gr (igloo.linux.gr [62.1.205.36]) by mx1.freebsd.org (Postfix) with ESMTP id 9F7638FC12 for ; Sat, 27 Dec 2008 01:29:26 +0000 (UTC) (envelope-from keramida@ceid.upatras.gr) Received: from kobe.laptop (adsl57-25.kln.forthnet.gr [77.49.184.25]) (authenticated bits=128) by igloo.linux.gr (8.14.3/8.14.3/Debian-5) with ESMTP id mBR1T6CH013740 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sat, 27 Dec 2008 03:29:12 +0200 Received: from kobe.laptop (kobe.laptop [127.0.0.1]) by kobe.laptop (8.14.3/8.14.3) with ESMTP id mBR1T6k3003757; Sat, 27 Dec 2008 03:29:06 +0200 (EET) (envelope-from keramida@ceid.upatras.gr) Received: (from keramida@localhost) by kobe.laptop (8.14.3/8.14.3/Submit) id mBR1T5SC003756; Sat, 27 Dec 2008 03:29:05 +0200 (EET) (envelope-from keramida@ceid.upatras.gr) From: Giorgos Keramidas To: Gary Kline References: <20081227011335.GA29354@thought.org> Date: Sat, 27 Dec 2008 03:29:05 +0200 In-Reply-To: <20081227011335.GA29354@thought.org> (Gary Kline's message of "Fri, 26 Dec 2008 17:13:39 -0800") Message-ID: <87ocyy2you.fsf@kobe.laptop> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-MailScanner-ID: mBR1T6CH013740 X-Hellug-MailScanner: Found to be clean X-Hellug-MailScanner-SpamCheck: not spam, SpamAssassin (not cached, score=-3.867, required 5, autolearn=not spam, ALL_TRUSTED -1.80, AWL 0.53, BAYES_00 -2.60) X-Hellug-MailScanner-From: keramida@ceid.upatras.gr X-Spam-Status: No Cc: FreeBSD Mailing List Subject: Re: how can i be certain that a file has copied exactly? X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Dec 2008 01:29:29 -0000 On Fri, 26 Dec 2008 17:13:39 -0800, Gary Kline 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