Skip site navigation (1)Skip section navigation (2)
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>