Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Jul 2007 02:46:19 +0400
From:      Andrey Chernov <ache@nagual.pp.ru>
To:        Peter Jeremy <peterjeremy@optushome.com.au>
Cc:        freebsd-current@freebsd.org
Subject:   Re: HEADS UP:  getenv() and family API change
Message-ID:  <20070710224619.GA31654@nagual.pp.ru>
In-Reply-To: <20070710213602.GX3434@turion.vk2pj.dyndns.org>
References:  <20070703182400.Q1449@baba.farley.org> <Xuu8UV3Bay@dmeyer.dinoex.sub.org> <20070709145418.T52164@thor.farley.org> <20070710154148.GA22873@nagual.pp.ru> <20070710213602.GX3434@turion.vk2pj.dyndns.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--k1lZvvs/B4yU6o8G
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Jul 11, 2007 at 07:36:02AM +1000, Peter Jeremy wrote:
> On 2007-Jul-10 19:41:48 +0400, Andrey Chernov <ache@nagual.pp.ru> wrote:
> >To say strictly, copying somewhere is not neccessary since this way work=
s=20
> >too:
> >
> >static char *s =3D "PATH=3D/bin";
> >
> >putenv(s);
>=20
> I thought the C compiler was still free to place the string into RO
> memory and/or coalesce it with other strings in that case.
>=20
> Wouldn't the following be clearer (s is forced to be writable):
>=20
> static char s[] =3D "PATH=3D/bin";
>=20
> putenv(s);

This two are the same, since there is no "const", so compiler can't put=20
static char *s
into RO memory.

--=20
http://ache.pp.ru/

--k1lZvvs/B4yU6o8G
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)

iD8DBQFGlAw7Vg5YK5ZEdN0RAjl8AJwJ85GF5IJkES6KLfdndc5gZRlCeACgmmeM
HEca1pnei6L5KKkIOGhnxas=
=LM8H
-----END PGP SIGNATURE-----

--k1lZvvs/B4yU6o8G--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070710224619.GA31654>