From: Ray Lee <ray-lk@madrabbit.org>
To: hps@intermeta.de, rddunlap@osdl.org
Cc: Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] Re: sscanf("-1", "%d", &i) fails, returns 0
Date: 11 Nov 2002 06:54:54 -0800 [thread overview]
Message-ID: <1037026495.22906.36.camel@orca> (raw)
> > What should it do?
> I would model this after user space. (Which does strange things:
<snip>
It only sounds strange at first. It actually means that scanf is
consistent with C's rules of assignment between mixed types. For
example:
ray:~$ cat signs.c
#include <stdio.h>
main() {
char scan[]="-100";
unsigned int u;
int i;
sscanf(scan, "%ud", &u);
sscanf(scan, "%d", &i);
printf("%s scanned to signed %d and unsigned %u\n", scan, i, u);
i=-100;
u=i;
printf("%d assigned to unsigned int gives %u\n", i, u);
}
ray:~$ ./signs
-100 scanned to signed -100 and unsigned 4294967196
-100 assigned to unsigned int gives 4294967196
So, one should think of scanf as having correct knowledge of the types
it's scanning, and then shoe-horning the result into whatever you asked
for. Just like C itself.
Ray
next reply other threads:[~2002-11-11 14:48 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-11 14:54 Ray Lee [this message]
2002-11-11 19:09 ` [PATCH] Re: sscanf("-1", "%d", &i) fails, returns 0 Randy.Dunlap
2002-11-11 20:08 ` Andreas Schwab
2002-11-11 20:25 ` Ray Lee
2002-11-13 7:06 ` Randy.Dunlap
2002-11-14 17:34 ` Ray Lee
-- strict thread matches above, loose matches on Subject: below --
2002-11-08 13:32 Douglas Gilbert
2002-11-08 19:22 ` [PATCH] " Randy.Dunlap
2002-11-08 19:41 ` Richard B. Johnson
2002-11-08 19:59 ` Randy.Dunlap
2002-11-08 20:19 ` Linus Torvalds
2002-11-08 22:09 ` Randy.Dunlap
2002-11-10 13:41 ` Henning P. Schmiedehausen
2002-11-11 3:05 ` Randy.Dunlap
2002-11-11 4:19 ` Randy.Dunlap
2002-11-11 9:27 ` Henning Schmiedehausen
2002-11-11 14:38 ` Andreas Schwab
2002-11-08 20:23 ` Richard B. Johnson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1037026495.22906.36.camel@orca \
--to=ray-lk@madrabbit.org \
--cc=hps@intermeta.de \
--cc=linux-kernel@vger.kernel.org \
--cc=rddunlap@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox