[svlug] Another Gcc/C question on linux vs other Unices

Marc MERLIN marc_news at vasoftware.com
Fri Jun 14 18:01:26 PDT 2002


On Fri, Jun 14, 2002 at 06:00:09PM -0700, Jeffrey Siegal wrote:
> Marc MERLIN wrote:
> > Mmmh, so even though it works on my system, with linux and gcc, gcc on
> > darwin may try to write in the contructed string.
> 
> This is very unlikely.  The above warning about the libraries writing to
> strings was written for legacy systems using an ancient C library.
> 
> Ever since ANSI C (10+ years now) the format string for scanf has been
> defined as "const char *" which means it is illegal for the library
> routine to write to it.  No modern C library will write to it.
 
Ah, ok, good to know.
 
> > I'll add -fwritable-strings, it can't hurt...
> 
> I advise against it.  This means that the strings are placed into
> writable memory, which means they probably won't be shared across
> multiple instances of the program (even if the strings themselves aren't
> modified and are could be shared by a copy-on-write scheme, they'll be
> sharing pages with other writable globals in memory which do get
> written, which means they won't be shared).

Gotcha.

Ok, so we're not closer as to why the darwin gcc complains on ##, but I
guess it doesn't matter since I can safely remove it.

thanks
Marc
-- 
"A mouse is a device used to point at the xterm you want to type in" - A.S.R.
Microsoft is to operating systems & security ....
                                      .... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/   |   Finger marc_f at merlins.org for PGP key



More information about the svlug mailing list