Article View: comp.bugs.misc
Article #83Re: doscan.o bug in Ultrix 1.2 & 2.0
From: Spencer Garrett
Date: Mon, 13 Jul 1987 00:26
Date: Mon, 13 Jul 1987 00:26
20 lines
1461 bytes
1461 bytes
-> As quoted from <309@nsta.UUCP> by tom@nsta.UUCP (Tom Gorodecki): -> +--------------- -> | Bug in doscan.o in /lib/libc.a on ULTRIX 1.2 and ULTRIX 2.0. -> | Try in you program.c the following line: -> | -> | val = fscanf(file,"%*[ \t\n]%74[abcdefghijklmnopqrstuvwxyz -> | ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]", namebuf); -> | -> | In case your input does not begin with space, tab or newline, scanf will -> | return 0 which is not right, since "*" should match "0 or more" . -> +--------------- But the following code would work on any unix system I've ever encountered: val = fscanf(file, " %74[a-zA-Z0-9]", namebuf); Whitespace in the format string matches OPTIONAL whitespace in the input stream. The %[] format requires that SOMETHING match its scanstring. The * only means "0 or more" in regular expressions. In the example above it is being used to suppress storing the result of the match.
Technical Details
Message-ID:
<108@quick.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!mnetor!uunet!quick!srgReferences:
<309@nsta.UUCP> <2852@ncoast.UUCP>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!quick!srg From: srg@quick.UUCP (Spencer Garrett) Newsgroups: comp.bugs.misc Subject: Re: doscan.o bug in Ultrix 1.2 & 2.0 Message-ID: <108@quick.UUCP> Date: Sun, 12-Jul-87 20:26:07 EDT Article-I.D.: quick.108 Posted: Sun Jul 12 20:26:07 1987 Date-Received: Mon, 13-Jul-87 05:42:09 EDT References: <309@nsta.UUCP> <2852@ncoast.UUCP> Organization: Quicksilver Engineering, Seattle Lines: 20 Summary: proper way to skip optional whitespace