Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GLib program termination signal handling?

Tags:

c

signals

glib

I've recently been exposed to GLib and am playing around with it. I have been able to replace a good deal of my C library functions with GLib functions (as an aside, I'm a huge fan of the command line handling!). However, one thing I haven't been able to find much documentation on is signal handling from the OS. Namely in Linux, is there a better way that I can handle CTRL+C or other signals to terminate the application? Currently I use signal(), but I'm wondering if there's a way that I can set up my handler for CTRL+C through GLib.

As always, thanks for the help.

like image 957
It'sPete Avatar asked Jul 26 '13 05:07

It'sPete


1 Answers

There is a way of using signals via GLIB! These are some of functions available for handling signals:

guint               g_unix_signal_add                   (gint signum,
                                                         GSourceFunc handler,
                                                         gpointer user_data);
guint               g_unix_signal_add_full              (gint priority,
                                                         gint signum,
                                                         GSourceFunc handler,
                                                         gpointer user_data,
                                                         GDestroyNotify notify);
GSource *           g_unix_signal_source_new            (gint signum);

Check out UNIX-specific utilities and integration, , g_unix_signal_add().

like image 150
Giuseppe Pes Avatar answered Sep 20 '22 06:09

Giuseppe Pes