On 8/27/06, Peter Firefly Lund <[EMAIL PROTECTED]> wrote:
>
> On Sun, 27 Aug 2006, rupert wrote:
>
> > the g_sprintf returns the number of characters, so i should use it like
> the
> > normal sprintf,
> > gchar *mapper_chk_cmd;
> > g_sprintf(mapper_chk_cmd, "/dev/mapper/%s", data);
> >
> > but it doesnt seem to help, the segfault is there, too
>
> Sorry, I meant g_strdup_printf().
>
> > when i init it with gchar mount_chk_cmd[128]; i can use it like
> > with sprintf, but i cant free the memory for these gchars.
> >
> > I got the warning with the g_sprintf, but i think it was because it
> returned
> > int
> >
> > i removed the fclose and pclose, but the app also crashed after a while
> with
> > the same
> > symptoms.
> >
>
> The file descriptor thing has nothing to do with the segfaults.  They were
> a separate problem.


strange, i rewrote the function to have a better overview, one file i can
close the other not.


gboolean crypto_mapper_check(gchar *data)
{
    gchar *mapper_chk_cmd;
    gboolean result_mapper=FALSE;

    mapper_chk_cmd = g_strdup_printf("/dev/mapper/%s", data);

    FILE *fp = fopen(mapper_chk_cmd, "r");
    g_free(mapper_chk_cmd);

    if(fp)
        result_mapper = TRUE;
    else
        result_mapper = FALSE;

    //fclose(fp);    /* this one crashes the the app when enabled*/
    return result_mapper;
}

# define MOUNT_PATH "cat /proc/mounts|grep %s"

gboolean crypto_mount_check(gchar *data)
{
    gchar *mount_chk_cmd;
    gchar buf[512];
    gboolean result_mount=FALSE;

    mount_chk_cmd = g_strdup_printf(MOUNT_PATH, data);

    FILE *pp = popen(mount_chk_cmd, "r");
    g_free(mount_chk_cmd);

    if(pp) {
        size_t got = fread(buf, 1, sizeof(buf), pp);

        if(got != 0)
            result_mount = TRUE;
        else
            result_mount = FALSE;
    }
    pclose(pp);
    return result_mount;
}
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to