Date: Tue, 16 Oct 2001 10:42:00 -0600 From: Nate Williams <nate@yogotech.com> To: Zero Sum <count@shalimar.net.au> Cc: cjclark@alum.mit.edu, "Crist J. Clark" <cristjc@earthlink.net>, Heath Nielson <heath@cs.byu.edu>, Warner Losh <imp@harmony.village.org>, David Marker <marker_d@yahoo.com>, freebsd-stable@FreeBSD.ORG Subject: Re: setenv() cores with NULL value [was Re: Gdm proplem on 4.4] Message-ID: <15308.25432.608079.646993@nomad.yogotech.com> In-Reply-To: <200110161002.f9GA2CA08544@shalimar.net.au> References: <200110160353.f9G3rO728525@harmony.village.org> <Pine.LNX.4.33.0110152249220.8479-100000@organ.cs.byu.edu> <20011016013834.E293@blossom.cjclark.org> <200110161002.f9GA2CA08544@shalimar.net.au>
next in thread | previous in thread | raw e-mail | index | archive | help
> > > > > > setenv("TEST1", "", 1); > > > setenv("TEST2", NULL, 1); > > > > A huge difference. In the first case, the second argument is a > > pointer aimed at a string which contains the bytes, '\0'. In the > > second case, we have a null pointer. Null pointers point at nothing. > > I had that out with a compiler manufacturer long, long ago. At that > time it was a requirement for a 'correct' C compiler to regard a null > pointer and a pointer to a null string as sematically equivalent. As others have pointed out, this was never the case. Here's a great example of why they aren't the same thing. printf("%s", ""); printf("%s", NULL); The first will work, the second will dump core. The second has never worked, and should never work. Nate To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15308.25432.608079.646993>