-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Thu, Oct 12, 2006 at 08:14:50PM +0200, Progss wrote:

Let me add some cents to Progss' two dollars :-)

> Sucheta Ghosh napisa?(a):
> > I wished to read a file and get some lines from there like this:
> >     -----
> >     fp=fopen("filename", "r");
> >     for(k=0; k<8; k++){
> >             n=a[k];
> >             for (i=1; i<=n; i++) //Here 'n' is the line number
> >                     fgets(s, 100, fp);
> >             puts(s);
> >             rewind(fp);
> >     }
> >     -----
> >     -----
> > This is the code snippet, which is working so well after compiling with 
> > 'gcc' compiler, but when I added this code inside Gtk+ callback.c, a 
> > runtime error is occuring before execution of 'fgets'. I have already 
> > included 'stdio.h', but even then it is not executing.
> > 
> > Do you have any idea that how to overcome this problem?
> 
> I can see some problems here, but that's not really GTK-related;
> well - there's also a change that included snippet was simply
> too short

Exactly. Where are n, a[], s and all of them declared?

> 1) no error checking for fopen(), fgets() - You don't to anything
>     if they fail (and that's most probable)

If fopen() fails, it returns NULL. An fread() or fgets() or whatever
will core dump on that.

> 2) can't see any fclose() - multiple "fopen()"s without closing
>     the file is BAD :)

No crash, but a memory leak. Your program  will accumulate file
descriptors until it runs out of them. This is what they call "file
descriptor leak".

> 3) You're reading the same file 8 times - and that's *at least*
> non-optimal - of course that depends on what exactly you're going
> to achieve, however I'm quite convinced

Yes, this looked strange to me as well. But who knows -- may be
something is changing the file (but it must be very quickly indeed). Or
it may be a special file in /proc, yielding different results for each
read pass.

> 4) I'd be really careful about placing some external file operations
> nside of a callback function..... but this depends on your overall
> application purpose and design.

Basically I don't see a problem in that -- besides the "feeling" that
file operations are often "taking longer time". And of course, things
that take longer time shouldn't go in a callback, if you don't want your
app to freeze some times.

Regards
- -- tomas
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFFLxRUBcgs9XrR2kYRAif8AJ4q2sbecDywzz8ek/bXsCe5a5ZtAgCfZQRx
lFF8Fg+pixaj6WfLM9Kk4RA=
=4LtO
-----END PGP SIGNATURE-----

_______________________________________________
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