[PATCH] Fix execl sentinels

Rob Landley rob at landley.net
Fri Jul 5 17:10:07 UTC 2013


On 07/01/2013 12:27:03 PM, Rich Felker wrote:
> On Mon, Jul 01, 2013 at 12:36:32PM -0400, Cathey, Jim wrote:
> > Seems to me the C++ definition of NULL as "0" is what is garbage.
> > It's been a zero void * for ages, why change it, then complain that
> > it isn't big enough for a pointer on selected architectures?
> 
> Please, let's not bikeshed this. Unfortunately the definition of NULL
> is a huge bikeshed topic, because everybody _THINKS_ it's something
> easy they know the answer to, but unfortunately it's not.

Null is a void *. I remember that from when I did C++ programming,  
which cares. C mostly doesn't care.

> NULL cannot be defined as ((void *)0) in C++ because C++ does not have
> implicit conversions from void * to other pointer types.

Yes. It's _expected_ to fail if you use NULL when you mean 0 in C++. I  
remember fixing more than one bug where I had to replace a "0" argument  
with a "NULL" argument so the stupid function overloading picked the  
right function.

> > That's
> > the whole reason it changed to a pointer from a simple zero  
> thirty-odd
> > years ago.
> 
> I must have missed that...

Eh, more like 20 years ago in the compilers I was following. (1992 was  
the height of me thinking C++ was actually a good idea.)

Rob


More information about the busybox mailing list