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>
