Am So, 13.02.2011, 13:20 schrieb Julian H. Stacey:
> Hi Hackers
> Ref.: man 3 getopt
>       int getopt(int argc, char * const argv[], const char *optstring);
> Ref.: K&R 2nd Ed P.211 last indent, 2nd sentence
>       The purpose of const is to announce [objects] that may be
>       placed in read-only memory, and perhaps to increas[e] opportunities for
optimization
> optstring is obviously const,
> but I don't see that argv can calim to be const ?

Hi Julian,

the prototype is in line with the Single Unix Specification v4 aka IEEE
Std. 1003.1-2008 (sorry no URL, I have checked my local copy, check
<http://www.opengroup.org/> you can access it free of charge after
registering name and email address).

The const basically states that the argv[] elements (i. e. the char *
pointers) are const[ant], or, read another way, that getopt promises not
to mess with the *pointers* but is free to modify the actual strings
pointed to (with the usual constraints of not assuming they can be
extended, for instance) - and I don't see the problem in that.

Does that help?  If not, please explain you confusion in a bit more detail.

Best
Matthias

-- 
Matthias Andree


_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[email protected]"

Reply via email to