//gcc -o main main.c `pkg-config --libs --cflags glib-2.0` `pkg-config --libs --cflags gtk+-2.0` #include #include #include #include #include int main(int argc, char** argv) { GVolumeMonitor * monitor; GList * iter; GList * drives; GList * mounts; GList * volumes; char * mount_name; char * drive_name; char * volume_name; // while (1) { gtk_init(&argc, &argv); monitor = NULL; iter=NULL; drives=NULL; mounts=NULL; volumes=NULL; monitor = g_volume_monitor_get(); drives = g_volume_monitor_get_connected_drives(G_VOLUME_MONITOR(monitor)); mounts = g_volume_monitor_get_mounts(G_VOLUME_MONITOR(monitor)); volumes = g_volume_monitor_get_volumes(G_VOLUME_MONITOR(monitor)); for (iter = drives; iter; iter = iter->next) { printf("drive detected\n"); // GVolume * volume = (GVolume *) volumes->data; GDrive * drive = (GDrive *) iter->data; // GMount * mount = (GMount *) mounts->data; // volume_name = g_volume_get_name(volume); drive_name = g_drive_get_name(drive); // mount_name = g_mount_get_name(mount); g_print("%s\n", drive_name); // g_free(mount_name); g_free(drive_name); // g_free(volume_name); } g_object_unref(monitor); // g_object_unref(drives); // g_object_unref(mounts); // g_object_unref(volumes); printf("\n"); // sleep(1); // } return (EXIT_SUCCESS); }