Re: fork() Problem?

Harald Koenig (koenig@tat.physik.uni-tuebingen.de)
Thu, 6 May 1999 09:13:23 +0200


On May 05, Richard B. Johnson wrote:

> On Wed, 5 May 1999, Manuel A. McLure wrote:
>
> > This is *not* a bug. lint is WARNING you (caps mine) that this may have
> > different results than expect. But the functionality behind the expression
> > is a C design feature that has been there since day one. Any compiler that
> > DOES execute the inside of the if() statement in the code you present would
> > be buggy.
> >
> > --
> > Manuel A. McLure KE6TAW <mmt@unify.com>
>
> Lint _clearly_ states that it's an error.

congratulation, you found a bug in lint;)

or just think that it's an `error' in lint's mind to write such ugly code
(which looks like Pascal code;) -- but lint's mind and lint itself isn't part
of the C language standard.

> That said, the problem with:
>
> if(a=b)
>
> is that the value of a is not tested. 'a' got assigned the value of
> 'b', but only the assignment was tested, not the resulting value.

can you please explain what `assignment was tested' means in C language ?
and an you please show where K&R or ANSI C explain what it means that
an `assignment (does not) succeed' and how this ever shall happen ?

does this test check if the value already was stored ?
was stored in main memory? stored in L2 cache? in L1 cache?
in a register variable ?!

and how ever should such a test, if a value got stored, fail in C ?
do you expect to read back memory (register, cache, ...) and compare
it with the original value to be stored ?!

Harald

--
All SCSI disks will from now on                     ___       _____
be required to send an email notice                0--,|    /OOOOOOO\
24 hours prior to complete hardware failure!      <_/  /  /OOOOOOOOOOO\
                                                    \  \/OOOOOOOOOOOOOOO\
                                                      \ OOOOOOOOOOOOOOOOO|//
Harald Koenig,                                         \/\/\/\/\/\/\/\/\/
Inst.f.Theoret.Astrophysik                              //  /     \\  \
koenig@tat.physik.uni-tuebingen.de                     ^^^^^       ^^^^^

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/