Re: GString problem.
- From: Jeffrey Stedfast <fejj ximian com>
- To: Archit Baweja <bighead crosswinds net>
- Cc: gnome-devel-list gnome org
- Subject: Re: GString problem.
- Date: 24 Mar 2001 22:59:29 -0500
fread does not nul terminate the buffer, so you have to do that
yourself.
Jeff
On 25 Mar 2001 08:49:17 +0530, Archit Baweja wrote:
>
> Hi
>
> I'm having some problems in assigning some text to a GString.
> I start with
>
> GString *data;
> data = g_string_new ("");
>
> Then I read data from a file into a gchar *
>
> fread (buffer, sizeof (gchar), 32, fp);
> g_string_append (data, buffer);
>
> The problem is that when I call g_string append, it append the the contents of
> "buffer" but also some garbage is sneaking in. Whats the problem. I have pasted
> the whole function in the end, just in case.
>
> Archit Baweja
>
> P.S. The Code.
>
>
> static gint
> file_load (PeacockFile *file)
> {
> FILE *fp;
> gchar buffer[32];
> gint bytes_read;
> GString *data;
>
> /*
> * Open file for reading and if a problem occurs, return an error code.
> */
> fp = fopen (file->name, "r");
> g_return_val_if_fail (fp != NULL, -1);
>
> data = g_string_new ("");
>
> /*
> * No problems found, go on load the file.
> */
> while (1) {
> bytes_read = fread (buffer, sizeof (gchar), 32, fp);
>
> if (bytes_read > 0)
> data = g_string_append (data, buffer);
>
> if (bytes_read != 32 && (feof (fp) || ferror (fp)))
> break;
> }
>
> /*
> * If any problems are encountered, return error code.
> */
> g_return_val_if_fail (!ferror (fp), -1);
>
> /*
> * Update the variables accordingly.
> */
> file->data = data;
>
> return 0;
> }
>
> _______________________________________________
> gnome-devel-list mailing list
> gnome-devel-list gnome org
> http://mail.gnome.org/mailman/listinfo/gnome-devel-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]