Re: [NEWBIE][CODE] Error writing to file ... :(

From: Juliano Ravasi Ferraz (
Date: 06/27/02

Justin Adler wrote:
> void append_to_file (char *line, char *filename) {
> ...
> fprintf (file, line);         // ***** CRASH HERE

Please, never do this anymore. The second argument of fprintf IS NOT a
char pointer pointing to the string to write. It is a FORMAT STRING
saying HOW the FOLLOWING arguments will be written. Unless you know
precisely the contents of the second argument (mostly a character string
constant directely written there), you should not do this.

It's ok to use things like
    fprintf(file, "hi");
because the format string is in front of your eyes, and you see that
there is no "%" sign in it, so it will print exactely what you want.

You should use either:
    fprintf(file, "%s", line);
    fputs(line, file);  /* preferably IMO */

I should also suggest you to use const on both parameters of your
function (append_to_file), and to remove the line saying "return;", once
it is unecessary.

Juliano Ravasi Ferraz <>
Linux User #164664

The guy who writes all those bumper stickers HATES New York.

   | FAQ: |
   | Archives: |
   | Newbie List:   |

This archive was generated by hypermail 2b30 : 06/25/03 PDT