|
Date: Fri, 7 Jul 2017 16:41:30 -0400 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: Different scanf behaviour compared to glibc On Fri, Jul 07, 2017 at 10:53:34PM +0300, Evgeni Stebaev wrote: > Hi! > > sscanf returns 0 for the following code using musl, but glibc returns 1. > %15s cannot be used here since it stops on whitespace, but it's required to > get all remaining data after getting other fields with sscanf (not included > in this example). > > #include <stdio.h> > #include <string.h> > > int main(void) { > char data[16]; > memset(data, '\0', sizeof(data)); > int res = sscanf("abcde", "%15c", data); > printf("parse: %d %s\n", res, data); > return 0; > } This is a known glibc bug (at least #12701, maybe duplicated in others) that they were historically unwilling to fix. musl's behavior matches what's required by the C standard. You might be able to use %[ to achieve what you want. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.