Date: Sun, 15 Jul 2007 15:06:29 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: gcooper@freebsd.org Cc: perforce@freebsd.org Subject: Re: PERFORCE change 123550 for review Message-ID: <20070715.150629.-457441111.imp@bsdimp.com> In-Reply-To: <200707152008.l6FK8Nr8028280@repoman.freebsd.org> References: <200707152008.l6FK8Nr8028280@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <200707152008.l6FK8Nr8028280@repoman.freebsd.org> Garrett Cooper <gcooper@freebsd.org> writes: : http://perforce.freebsd.org/chv.cgi?CH=123550 : : Change 123550 by gcooper@optimus-revised_pkgtools on 2007/07/15 20:07:45 : : Quite simply, works with read, but not fread. Or maybe it's just me :)? : : Affected files ... : : .. //depot/projects/soc2007/revised_fbsd_pkgtools/usr/src/usr.sbin/pkg_install/lib/file.c#4 edit : : Differences ... : : ==== //depot/projects/soc2007/revised_fbsd_pkgtools/usr/src/usr.sbin/pkg_install/lib/file.c#4 (text+ko) ==== : : @@ -223,7 +223,7 @@ : : contents = (char *)malloc(sb.st_size + 1); : : - if ((int) fread(contents, sb.st_size, 1, fd) == FAIL) { : + if (read(fileno(fd), contents, sb.st_size) == FAIL) { : cleanup(0); : errx(2, "%s: short read on '%s' - did not get %lld bytes", __func__, : fname, (long long)sb.st_size); The functions fread() and fwrite() advance the file position indicator for the stream by the number of bytes read or written. They return the number of objects read or written. If an error occurs, or the end-of- file is reached, the return value is a short object count (or zero). vs If successful, the number of bytes actually read is returned. Upon read- ing end-of-file, zero is returned. Otherwise, a -1 is returned and the global variable errno is set to indicate the error. /me guesses FAIL is defined to be -1... Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070715.150629.-457441111.imp>