delorie.com/archives/browse.cgi | search |
From: | Andy Bober <muajb2 AT uxa DOT ecn DOT bgu DOT edu> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: DJGPP inconsistencies? |
Date: | Thu, 13 Mar 1997 08:30:43 -0600 |
Organization: | Educational Computing Network |
Lines: | 39 |
Message-ID: | <33280F93.B9B@uxa.ecn.bgu.edu> |
References: | <Pine DOT SUN DOT 3 DOT 91 DOT 970313130930 DOT 6426F-100000 AT is> |
NNTP-Posting-Host: | modem15.wiu.edu |
Mime-Version: | 1.0 |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
[snip] > > Also, I sometimes get random compiler "parse" errors when I include > > the following code in a program: > > > > char *str; > > if ( (str = getenv("DEM_PATH")) == NULL) { > > printf("\"DEM_PATH\" environment variable not set\n"); > > exit(1); > > } > > > > Yet again...WHY? > [snip] It's your nested double quotes. How many strings are in the printf() line? Parse of printf() string: "\" --- this starts and ends one null terminated string DEM_PATH\ --- this is a syntax error " environment variable not set\n" --- this starts and ends a second null terminated string Try the line like this: char *str; if ( (str = getenv("DEM_PATH")) == NULL) { printf("'DEM_PATH' environment variable not set\n"); exit(1); } If you need to use the the backslashes as characters in the string, I believe they must be doubled. ( ie. "\\DEM_PATH\\ environment variable not set\n" ) Andy
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |