From owner-freebsd-bugs Mon Jul 17 18:20: 7 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 4C72B37B7DE for ; Mon, 17 Jul 2000 18:20:04 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id SAA92004; Mon, 17 Jul 2000 18:20:04 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Date: Mon, 17 Jul 2000 18:20:04 -0700 (PDT) Message-Id: <200007180120.SAA92004@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Jin Guojun (DSD staff) Subject: Re: misc/19994: sscanf() fails on 64-bit operations Reply-To: Jin Guojun (DSD staff) Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR misc/19994; it has been noted by GNATS. From: Jin Guojun (DSD staff) To: bde@zeta.org.au, j_guojun@lbl.gov Cc: FreeBSD-gnats-submit@FreeBSD.ORG Subject: Re: misc/19994: sscanf() fails on 64-bit operations Date: Mon, 17 Jul 2000 18:09:50 -0700 (PDT) On Mon, 17 Jul 2000, Bruce Evans wrote: > > >How-To-Repeat: > > > > main(argc, argv) > > { > > int rev, i = 1; > > if (!strcmp(argv[i], "-r")) { > > rev = 1; > > i++; > > } else rev = 0; > > { > > int64_t h; > > rev ? sscanf(argv[i], "%lld", &h) : sscanf(argv[i], "%llx", &h > ); > > printf(rev ? "0x%016llX\n": "%lld\n", h); > > } > > } > > 64-bit types are unportable. FreeBSD's scanf only supports reading "quad" > types using %qd format. > > FreeBSD's scanf also has some overflow handling bugs from misusing strtoq > to handle non-quads. Shall we have "%lld" in FreeBSD to make it portable with other systems? -Jin To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message