First, GTK+ must be initialized:
This call connects to an X server, and parses some
default arguments understood by all GTK+ programs.
Parsed arguments are removed from argv, and argc is decremented accordingly.
gtk_init() also registers a
"cleanup function" using
atexit(). In practice, this is only important
when you fork(); the child
process must exit with
_exit() rather than
exit() to avoid shutting down GTK+ in the
parent.