delorie.com/archives/browse.cgi | search |
Hello, I am using gcc version "2.95 19990728 (release)" under the cygnus shell version (output of uname -a) "CYGWIN_95-4.0 IHFPCUJ 21.0 (0.8/1/1) 1999-1-16 00:09:28 i586 unknown". I have problems with the sscanf function processing data of type long long, the following short code illustrates this: --------------------------------------- #include <stdio.h> int main() { long long ll; /* this initialisation will result in a correct output: */ /* ll = 0; */ /* this initialisation will result in an incorrect output */ ll = -9999999999; sscanf ("123456789", "%lld", &ll); printf ("%lld\n", ll); return (0); } --------------------------------------- The code as printed above gives the incorrect output -12761445099 to the screen. However, if the statement ll = -9999999999; is replaced by the initialisation ll = 0; then the output is correct: 123456789 When ll is not being initialised, then the output is unpredictable. Executing the same code on a LINUX system with either gcc-2.8.1 or gcc-2.95.1 results in the correct output in all three cases. Ulrich -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |