Re: gtk_input_add_full() and marshalling
- From: Andrei Zmievski <andrei ispi net>
- To: Paul Davis <pbd op net>
- Cc: gtk-list gnome org
- Subject: Re: gtk_input_add_full() and marshalling
- Date: Wed, 10 Apr 2002 11:23:35 -0500
On Wed, 10 Apr 2002, Andrei Zmievski wrote:
> Just a regular file. Here's a sample program that reads an arbitrary
> file. When I run it, the reader() function receives the data but then
> gets invoked over and over again.
If I modify the program to the following, it seems to work (with one
exception).
#include <stdio.h>
#include <gtk/gtk.h>
void reader(gpointer data, gint source, GdkInputCondition cond)
{
char buf[256];
int n;
printf("\n ** reader called **\n");
if ((n = read(source, buf, 256)) > 0) {
buf[n] = 0;
printf("%s", buf);
} else {
int *id = (int *)data;
gtk_input_remove(*id);
/* gtk_main_quit(); */
}
}
int main(int argc, char **argv)
{
FILE *fp;
int id;
if (argc != 2)
exit(1);
fp = fopen(argv[1], "r");
id = gtk_input_add_full(fileno(fp), GDK_INPUT_READ, reader,
NULL, (gpointer)&id, NULL);
gtk_main();
fclose(fp);
return 0;
}
If I uncomment gtk_main_quit() in reader(), the program segfaults. Any
hints on why?
-Andrei
The main reason Santa is so jolly is because he knows where
all the bad girls live. -- George Carlin
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]