Date: Tue, 03 Jun 2003 11:04:20 -0600 From: "Justin T. Gibbs" <gibbs@scsiguy.com> To: Kern Sibbald <kern@sibbald.com> Cc: mjacob@feral.com Subject: Re: SCSI tape data loss Message-ID: <900070000.1054659860@aslan.btc.adaptec.com> In-Reply-To: <1054658432.13630.252.camel@rufus> References: <3EDB31AB.16420.C8964B7D@localhost> <3EDB59A4.27599.C93270FB@localhost> <20030602110836.H71034@beppo> <577540000.1054579840@aslan.btc.adaptec.com> <20030602131225.F71034@beppo> <1054645616.13630.161.camel@rufus> <20030603072944.U44880@beppo> <1054652678.13630.209.camel@rufus> <882210000.1054657530@aslan.btc.adaptec.com> <1054658432.13630.252.camel@rufus>
next in thread | previous in thread | raw e-mail | index | archive | help
> Yes, I probably should move the clrerror() and the > check/set of errno inside the check for "stat == -1". > However, the code though odd is correct since > I do not use errno unless the status is -1. No, the code is not correct. clrerror() has side effects in many cases when errno is non-zero. > By the way, the funny casting is mandatory in C++, > because ssize_t as returned by the write is not the > same as size_t (what is written). Integer type conversions are still valid in C++: #include <stdio.h> #include <inttypes.h> int subroutine(uint8_t small_type) { printf("small_type is %d\n", small_type); return (0); } int main(int argc, char *argv[]) { uint8_t foo; uint32_t bigger_foo; foo = 100; bigger_foo = argc; if (foo != bigger_foo) { printf("Foos differ\n"); } subroutine(bigger_foo); return (0); } % g++ -Wall -pedantic foo.cc Produces no output. -- Justin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?900070000.1054659860>